MongoDB:如何在对象数组中找到_id $?
我有一个“组”集合,它将来自另一个“项目”集合的文档分组。 group
集合只是item
集合中ObjectId的一个集合,但是我希望使group
阵列中的对象更加复杂,并且仍然能够使用$in
和$nin
运算符。
将$in
运算符使用的值更改为对象而不是仅ObjectId时,如何使用$in
?
// current group document {
_id: ObjectId(...),
items: [
ObjectId(...),
ObjectId(...)
]
}
// current item find query
db.item.find({ _id : { $in: group.items } }
我想改变group
文件看起来像下面
{ _id: ObjectId(...),
items: [
{ _id : ObjectId(...), name: '...' },
{ _id : ObjectId(...), name: '...' }
]
}
回答:
将您的组阵列到IDS的一个简单的数组使用进行查找():
// revised item find logic var itemGroupItemIds = group.items.map(function(item){
return item._id
});
db.item.find({ _id : { $in: itemGroupItemIds } });
以上是 MongoDB:如何在对象数组中找到_id $? 的全部内容, 来源链接: utcz.com/qa/261900.html