我在我的 MEAN 项目中使用子文档来处理订单和每个订单的项目。
这些是我的(简化的)模式:
var itemPerOrderSchema = new mongoose.Schema({
itemId: String,
count: Number
});
var OrderSchema = new mongoose.Schema({
customerId: String,
date: String,
items: [ itemPerOrderSchema ]
});
要在 itemPerOrderSchema 数组中插入项目,我目前这样做:
var orderId = '123';
var item = { itemId: 'xyz', itemsCount: 7 };
Order.findOne({ id: orderId }, function(err, order) {
order.items.push(item);
order.save();
});
问题是我显然想要一个项目itemId
,这样我就可以获得每个项目的许多子文档......
一种解决方案可能是遍历所有order.items
,但这不是最佳的,当然(order.items
我可以很多......) . 查询时可能会出现同样的问题order.items
...
问题是:如何在itemPerOrderSchema
数组中插入项目而不必遍历订单中已插入的所有项目?