Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 单子对象投影_Mongodb_Projection - Fatal编程技术网

Mongodb 单子对象投影

Mongodb 单子对象投影,mongodb,projection,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},{u id:1,grades.s

假设我有这样的东西:

{ "_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},{u id:1,grades.student2:1})

没有工作,所以我调查了一下,我想也许
$slice
会是我想要的,但似乎不是。

你可以。不过别忘了引用字段名

> 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 } }

请注意,
\u id
是隐式投影的。您不必指定它,除非您想删除它(
\u id:0
)。

问题是我没有引用字段名