所以很新,绝对没有受过MongoDB的教育。
有这样的JSON结构:
{
"id": "123456",
"makes": {
"abc": {
"att1": 4,
"att2": "fffff",
"att3": 46
},
"fgh": {
"att1": 8,
"att2": "ggggg",
"att3": 6
},
"rty": {
"att1": 3,
"att2": "hhhh",
"att3": 4
},
"iop": {
"att1": 4,
"att2": "llll",
"att3": 3
}
}
}
我如何查询DB的"fgh"制作?我试着:
db.<myCollection>.find({"makes":"fgh"})
但这不起作用。如果我写:
db.<myCollection>.find({"makes.fgh.att1":8})
提前感谢!
当您尝试查询制作时。Fgh不是对内容进行查询,而是对结构进行查询,因为" Fgh "不是一个值,而是一个子文档。
你可以使用$exists搜索:
db.myCollection.find( { "makes.fgh" : { $exists : true } })
参考https://docs.mongodb.com/manual/reference/operator/query/exists/
整合@ christam的有用评论:
如果您只对子文档感兴趣,您还可以向find:
添加投影。db.myCollection.find({ "makes.fgh" : { $exists : true }}, { "makes.fgh" : 1 })
详情请浏览https://docs.mongodb.com/manual/reference/method/db.collection.find/#db.collection.find