单个子对象的投影

时间:2015-06-17 14:53:12

标签: mongodb projection

说我有类似的东西:

{ "_id" : 1, "semester" : 1, "grades" : { student1: 70, student2: 85 }}
{ "_id" : 1, "semester" : 1, "grades" : { student1: 55, student2: 24 }}

我想做一个find(),在我的投影中,我只想要student2,这是grades

的子对象/属性

我天真的做法:

db.streets.find({dowhatever}, {_id:1, grades.student2: 1})

没有工作,所以我调查了http://docs.mongodb.org/manual/reference/operator/projection/,我想也许$slice可能是我想要的,但似乎不是。

1 个答案:

答案 0 :(得分:0)

你可以access fields inside an embedded document using the dot notation。不要忘记引用字段名称。

> db.collection.find()
{ "_id" : 1, "semester" : 1, "grades" : { "student1" : 70, "student2" : 85 } }
{ "_id" : 2, "semester" : 2, "grades" : { "student1" : 55, "student2" : 24 } }

> db.collection.find({_id: 2}, { "grades.student2": 1})
{ "_id" : 2, "grades" : { "student2" : 24 } }

请注意隐式预测_id。您不必指定它,除非您要删除它(_id: 0)。