猫鼬填充多个级别
Mongoose populate multiple levels
我有一个包含订单键的用户集合:
orders:[{
type:mongoose.Schema.Types.ObjectId,
ref:'Order'
}]
订单模式有一组产品:
contents:[{
product:{
type:String,
ref:'Product'
},
size:String,
color:String,
price:Number
}]
并且产品架构的 _id 为:
_id:{
type:String,
unique:true,
required:true
}
现在,我想 return 用户以及该订单中他的订单和产品的所有详细信息。
我试过了,但它没有用产品详细信息填充订单:
User.findById(req.user._id)
.populate("orders")
.populate("orders.contents.product")
当我尝试填充单个订单时,它工作正常:
Order.findById(req.params.orderId)
.populate("contents.product")
您可以尝试嵌套方法,在您的情况下应该类似于:
.populate({
path: 'orders',
populate: {
path: 'contents.product'
}
})
https://mongoosejs.com/docs/populate.html#populate_multiple_documents
我有一个包含订单键的用户集合:
orders:[{
type:mongoose.Schema.Types.ObjectId,
ref:'Order'
}]
订单模式有一组产品:
contents:[{
product:{
type:String,
ref:'Product'
},
size:String,
color:String,
price:Number
}]
并且产品架构的 _id 为:
_id:{
type:String,
unique:true,
required:true
}
现在,我想 return 用户以及该订单中他的订单和产品的所有详细信息。
我试过了,但它没有用产品详细信息填充订单:
User.findById(req.user._id)
.populate("orders")
.populate("orders.contents.product")
当我尝试填充单个订单时,它工作正常:
Order.findById(req.params.orderId)
.populate("contents.product")
您可以尝试嵌套方法,在您的情况下应该类似于:
.populate({
path: 'orders',
populate: {
path: 'contents.product'
}
})
https://mongoosejs.com/docs/populate.html#populate_multiple_documents