Mongodb返回文档和匹配查询的数组元素

Mongodb返回文档和匹配查询的数组元素,mongodb,node-mongodb-native,Mongodb,Node Mongodb Native,如何查询集合以返回集合中的所有文档,这些文档在子字段“list”(数组)中至少有一个“time”>100的元素,并在“list”中返回满足此条件的所有元素,而不仅仅是第一个。$$elemMatch只返回第一个,但我想要全部。我怎么做?是的,将帮助您完成这项工作。类似这样的查询应该可以工作: db.collection.aggregate( { $unwind : "$list" }, // deconstruct the array { $match : { list : {

如何查询集合以返回集合中的所有文档,这些文档在子字段“list”(数组)中至少有一个“time”>100的元素,并在“list”中返回满足此条件的所有元素,而不仅仅是第一个。$$elemMatch只返回第一个,但我想要全部。我怎么做?

是的,将帮助您完成这项工作。类似这样的查询应该可以工作:

db.collection.aggregate( 
    { $unwind : "$list" }, // deconstruct the array
    { $match : { list : { $gt : 100 } } }, // match based on your condition
    { $group : { _id : "$_id", list : { $push : "$list" } } } // rebuild array
)

您必须根据确切的数据结构更改此查询,但这是一般的想法。

$使用聚合框架展开是一种方法