我是MongoDB的新手,试图将来自其他集合的数据填充到响应中。最简单的例子如下:
const CartSchema = new Schema({
items: [{
product: { type: Schema.Types.ObjectId, ref: 'product' },
qty: Number
}],
...
});
当关系处于根级别时,我能够使用.populate()
,但在上面的示例中,我有一系列具有各自属性的项目,例如: qty
,以及对产品的_id
引用。我想将产品对象填充到每个汽车项目中,但似乎无法找到关于"对"的内容的任何示例。这样做的方法。
Cart.findById(id)
.populate('products') // <-- something like this
.then(record => ... )
.catch(next);
我知道在查找购物车记录并手动扩展初始对象后,我可能会在产品集合上单独.find()
,但我希望有一种方法可以在原始查询中填充数据?
答案 0 :(得分:2)
你可以试试这个,它会对你有用。
Cart.findById(id)
.populate('items.product')
.then(record => ... )
.catch(next);
.populate('items.product')
将populate
数组中所有购物车项目的product
对象。