如何更新 MongoDB 文档内的文档?

Tow*_*hid 0 mongodb mongo-shell

{
"_id" : O5,
"bazar" : {
    "indiraBazar" : {
        "units" : "taka",
        "no" : 560,
        "value" : 0.90
    },
    "dhakaBazar" : {
        "no" : "no item",
        "value" : 1
    },
    "kolaBazar" : {
        "no" : "unlimited",
        "value" : 4
    }
},
"vat" : false,
"total" : 2
Run Code Online (Sandbox Code Playgroud)

}

说上面的文件正在bazars收集中。value这里我如何将filed of从4设置kolaBazar为5?

Syd*_*ney 5

查询将按要求更新:db.bazars.update({'bazar.kolaBazar.value': 4}, {$set: {'bazar.kolaBazar.value':NumberInt(5)}})

编辑:该查询也有效:db.bazars.update({'id': 06}, {$set: {'bazar.kolaBazar.value':NumberInt(5)}})

但我会更改架构以简化您的查询。

{
    "_id" : "O6",
    "bazar" : [ 
        {
            "_id" : "indiraBazar",
            "units" : "taka",
            "no" : 560,
            "value" : 0.9
        }, 
        {
            "_id" : "dhakaBazar",
            "no" : "no item",
            "value" : 1
        }, 
        {
            "_id" : "kolaBazar",
            "no" : "unlimited",
            "value" : 4
        }
    ],
    "vat" : false,
    "total" : 2
}
Run Code Online (Sandbox Code Playgroud)

新的查询将是db.bazars.update({'bazar._id':'kolaBazar'}, {$set:{'bazar.$.value':NumberInt(5)}})