在mongodb我保存了这样的文件。
"Angela_Merkel": {
"birthPlace": "Hamburg,West_Germany",
"thumbnail": "http://commons.wikimedia.org/wiki/Special:FilePath/Angela-Merkel-2014.jpg?width=300",
"almaMater": "Leipzig_University",
"birthDate": "1954-07-17",
"spouse": "Joachim_Sauer"
}
这种方式有很多人的信息。现在,如果我想获得“Angela_Merkel”的所有信息,或者仅仅是“Angela_Merkel”的“birthdDate”,那么查询将会是什么?
答案 0 :(得分:0)
就像chridam所说的那样重构你的文件会更实际:
{"name": "Angela_Merkel",
"birthPlace": "Hamburg,West_Germany",
"thumbnail": "http://commons.wikimedia.org/wiki/Special:FilePath/Angela-Merkel-2014.jpg?width=300",
"almaMater": "Leipzig_University",
"birthDate": "1954-07-17",
"spouse": "Joachim_Sauer"
}
在"内部"集合(它的集合名称是集合的复数形式,是一组文档)
然后你可以这样做:
db.people.find({"name":"Angela Merkel"},{"_id":0," "birthdDate":1 })
获得:
{"birthDate": "1954-07-17"}
无论如何,你可以通过这种方式获得你想要的文件:
"生日":
db.person.find({"Angela_Merkel.birthDate": "1954-07-17"})
或所有信息:
db.person.find({"Angela_Merkel": { $exists: true}})
但这样做并没有多大意义。
PD:已编辑以包含最后一部分。