【发布时间】:2015-05-26 03:33:18
【问题描述】:
我的 MongoDB 集合中有以下文档:
{ "_id" : 1, "semester" : 1, "grades" : [ 70, 87, 90 ] }
{ "_id" : 2, "semester" : 2, "grades" : [ 90, 88, 92 ] }
{ "_id" : 3, "semester" : 1, "grades" : [ 85, 100, 90 ] }
我想检索与第一学期匹配的所有文档,并为每个文档提供 id 字段、学期字段和大于 80 的一年级。 即,对于上面的文档,查询的结果应该是:
{ "_id" : 1, "semester" : 1, "grades" : 87 }
{ "_id" : 3, "semester" : 1, "grades" : 85 }
这可能吗? 执行此操作的查询是什么(我使用的是 MongoDB 2.6)? 我知道如何展示所有大于 80 的成绩,使用 $elemMatch 进行投影,或者如何只展示一年级,使用 '$' 运算符,但我如何将它们结合起来选择其中的第一个?
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework