【发布时间】:2014-03-10 14:14:27
【问题描述】:
我的收藏如下:-
{ "_id" : 1, "grades" : [ 70, 87, 90 ] }
{ "_id" : 2, "grades" : [ 90, 88, 92 ] }
我正在使用以下查询:-
db.students.find( { semester: 1, grades: { $gte: 85 } },
{ "grades.$": 1 } )
我得到的结果是:-
{ "_id" : 1, "grades" : [ 87 ] }
{ "_id" : 2, "grades" : [ 90 ] }
现在我的问题是,当我在字段等级上使用 $gte 时,它将检查数组的任何元素是否匹配条件,如果匹配则返回文档。那么为什么我的第一个文档的输出是 87 而不是 70。我知道我们已经指定了一个相等条件“grades: { $gte: 85 }”,但它返回了完整的文档并投影了第一个字段。那为什么输出是87呢?
【问题讨论】:
标签: mongodb mongodb-query