首页 > 解决方案 > 如何获取对象数组中所有索引的键值

问题描述

我想访问所有索引的 cart.item 以从产品集合中获取值以获取产品的当前价格。

 const CartSchema = mongoose.Schema({
    userId: {
        type: mongoose.Schema.Types.ObjectId,
        required: true
    },
    cart: [
        {
        item: {
            type: mongoose.Schema.Types.ObjectId,
            required: true,
            ref: 'product'
        },
        quantity: {
            type: Number,
            required: true,
            default: 1
        },
        image: {
            type: String,
            required: true
        },
        name: {
            type: String,
            required: true
        }
    }
],
    active: {
        type: Boolean,
        default: true
    },
    modifiedOn: {
        type: Date,
        default: Date.now
    }
},
{ 
    timestamps: true 
});

这就是我的购物车模式的外观。而且我想像访问数组中的所有cart.item一样(显然它不是这样完成的)。我想将它与产品集合结合起来,以获取购物车中商品的当前价格,以计算总和和退货总额。购物车项目中的本地字段是cart.item,外部字段是产品模式中的_id

const ProductSchema = mongoose.Schema({
    title: {
        type: String,
        required: true,
        index: true
    },
    category: {
        type: String,
        required: true,
        index: true
    },
    inStock: {
        type: Number,
        required: true
    },
    price: {
        type: Number,
        required: true
    }
});

const Products = mongoose.model('product', ProductSchema);

标签: javascriptnode.jsmongodbexpressmongoose

解决方案


我想你想在这里填充购物车项目:

在你的 find() 函数中

Cart.find({}).populate('cart.item'))


推荐阅读