我正在尝试使用http://docs.mongodb.org/manual/reference/bios-example-collection中的生物示例集进行操作,以便了解如何查询mongodb。
我想要检索有关_id:1在year:1975获得奖项的信息。
我尝试了几个查询,其中包括
bios.find({
"_id" : 1,
"awards" : {
"year" : 1975
}
});
但我从未收到正确的文件。如何从数组中取回此文档?
我正在尝试使用http://docs.mongodb.org/manual/reference/bios-example-collection中的生物示例集进行操作,以便了解如何查询mongodb。
我想要检索有关_id:1在year:1975获得奖项的信息。
我尝试了几个查询,其中包括
bios.find({
"_id" : 1,
"awards" : {
"year" : 1975
}
});
但我从未收到正确的文件。如何从数组中取回此文档?
bios.find({"_id" : 1, "awards.year" : 1975 });
这是一个相当无意义的查询,因为你在查询中也有_id
,但我猜这是因为你在玩一个例子。另外,你说你要查找1967年的奖项,但代码显示的是1975年。
如果你搜索"awards" : { "year" : 1975 }
,mongodb会寻找整个子文档awards
的精确匹配。在这种情况下,这不是你想要的。而且,由于awards
是一个数组,这将永远是错误的。如果你想在列表中查找特定的奖项文档,$elemMatch
是正确的方法。