如何在Mongodb中找到同一个数组中的几个项目?

时间:2013-10-27 21:44:37

标签: mongodb mongoose

在“友谊”系列中,我想找到所有Bart的朋友,他们是10. $ elemMatch查询只返回数组的第一个匹配元素:我只得到Milhouse。我怎样才能得到米尔豪斯和马丁?

{   name:'Bart',
    age:10
    friends:[
       {    name:'Milhouse',
            age:10
       },
       {    name:'Nelson',
            age:11
       },
       {    name:'Martin',
            age:10
       }
   ]
},
{   name:'Lisa',
    age:8
    friends:[
       ...
    ]
}

1 个答案:

答案 0 :(得分:1)

尝试使用aggregation framework执行此任务(尤其是$unwind运算符):

db.friendship.aggregate([
    { $match: { name: "Bart" } },
    { $unwind: "$friends" },
    { $match: { "friends.age": 10 } }
]);