MongoDB在嵌套对象key (JSON)上查找key



所以很新,绝对没有受过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

相关内容

  • 没有找到相关文章

最新更新