哪个mongodb运算符与$(投影)相反,用于检索与查询匹配的任何元素

时间:2015-05-05 17:32:37

标签: mongodb

如何获取与查询匹配的所有嵌入文档?正如文件所说:

  

位置$运算符限制数组的内容   查询结果仅包含与查询匹配的第一个元素   文档。

示例:

{ "_id" : 7, semester: 3, "grades" : [ { grade: 80, mean: 75, std: 8 },
                                   { grade: 85, mean: 90, std: 5 },
                                   { grade: 90, mean: 85, std: 3 } ] }

{ "_id" : 8, semester: 3, "grades" : [ { grade: 92, mean: 88, std: 8 },
                                   { grade: 78, mean: 90, std: 5 },
                                   { grade: 88, mean: 85, std: 3 } ] }

例如,我需要std < 8的成绩,operator $只返回第一个匹配的结果,所以我们有两个对象:

{ grade: 85, mean: 90, std: 5 }
{ grade: 78, mean: 90, std: 5 }

但我需要的结果是:

{ grade: 85, mean: 90, std: 5 },
{ grade: 90, mean: 85, std: 3 }

{ grade: 78, mean: 90, std: 5 },
{ grade: 88, mean: 85, std: 3 }

1 个答案:

答案 0 :(得分:4)

使用聚合框架。

.aggregate([
    {$unwind: "$grades"},
    {$match: {"grades.std": {$lt: 8}}
])

Documentation on aggregation