我正在玩http://docs.mongodb.org/manual/reference/bios-example-collection的bios示例集合,以自学如何查询mongodb.
我想检索有关year : 1975届_id : 1人获奖的信息.
我试过几个问题,其中包括
bios.find({
"_id" : 1,
"awards" : {
"year" : 1975
}
});
但我从未收到过正确的文件.如何在数组中检索此文档?
我正在玩http://docs.mongodb.org/manual/reference/bios-example-collection的bios示例集合,以自学如何查询mongodb.
我想检索有关year : 1975届_id : 1人获奖的信息.
我试过几个问题,其中包括
bios.find({
"_id" : 1,
"awards" : {
"year" : 1975
}
});
但我从未收到过正确的文件.如何在数组中检索此文档?
你必须使用dot notation:
bios.find({"_id" : 1, "awards.year" : 1975 });
这是一个毫无意义的查询,因为查询中也有_id
个,但我想这是因为你在玩一个例子.还有,你说你在寻找1967年的奖项,但代码上写着1975年.
如果搜索"awards" : { "year" : 1975 }
,mongodb将查找整个子文档awards
的精确匹配项.在这种情况下,这不是你想要的.此外,由于awards
是一个数组,因此它总是错误的.如果你想在列表中查找特定的奖励文件,$elemMatch
是最好的 Select .