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

回到顶部