搜索数组中的元素并在mongodb中返回匹配的元素
我有以下文件搜索数组中的元素并在mongodb中返回匹配的元素,mongodb,Mongodb,我有以下文件 db.c.save({a:[{u:3},{u:6},{u:123}]}); 我想从数组中提取匹配的元素。所以我使用下面的查询来完成它 db.c.find({'a.u':{$in:[3,123]}},{'a.$':1}); 这给了我{“a”:[{“u”:3}}但是我想它应该返回{“a”:[{“u”:3},{“u”:123} 有什么建议吗?不幸的是,只返回第一个匹配项,因此您无法使用它来执行您试图执行的操作 但是,您可以使用或。以下代码使用聚合框架执行您所需的操作: db.c.ag
db.c.save({a:[{u:3},{u:6},{u:123}]});
我想从数组中提取匹配的元素。所以我使用下面的查询来完成它
db.c.find({'a.u':{$in:[3,123]}},{'a.$':1});
这给了我{“a”:[{“u”:3}}
但是我想它应该返回{“a”:[{“u”:3},{“u”:123}
有什么建议吗?不幸的是,只返回第一个匹配项,因此您无法使用它来执行您试图执行的操作
但是,您可以使用或。以下代码使用聚合框架执行您所需的操作:
db.c.aggregate([
{ $unwind : "$a"},
{ $match : { "a.u" : {$in :[3,123]} } },
{ $group : {_id : "$_id",a : { $push : "$a" } } }
])