var buyerSchema = new Schema({
cart: [{
id: {
type: Schema.Types.ObjectId,
ref: "product"
},
number: Number
}],
personName: { type: String, required: true, trim: true },
image: { type: String, required: false, trim: true },
email: { type: String, required: true, trim: true }
})
如何填充ID字段
buyerMdl.findByToken(buyer['token']).populate({path: 'cart', populate: {path : 'id', model : 'product'}})
此特定命令对我不起作用
答案 0 :(得分:1)
您的id
位于卡阵列内...因此,应使用点符号来填充id
buyerMdl.findByToken(buyer['token']).populate({ path: 'cart.id' })
答案 1 :(得分:1)
首先,请确保您的findByToken
方法返回find的实例,以便您可以在链中使用.populate()
。
问题是您正在尝试填充未引用的属性。因此,您应该直接填充card
。而不是先填充id
,然后再填充cart.id
。
这应该有效:
buyerMdl
.findByToken(buyer['token'])
.populate({
path: 'cart.id',
model: 'product'
});