Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
搜索数组中的元素并在mongodb中返回匹配的元素_Mongodb - Fatal编程技术网

搜索数组中的元素并在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" } } }
])