• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

MongoDB:如何在对象数组中找到_id $?

arrays 来源:MatUtter 5次浏览

我有一个“组”集合,它将来自另一个“项目”集合的文档分组。 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 } }); 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)