使用Mongo更新Map值文档值

时间:2015-09-09 07:56:38

标签: mongodb mongodb-query

我有像myPortCollection这样的文件

{
    "_id" : ObjectId("55efce10f027b1ca77deffaa"),
    "_class" : "myTest",
    "deviceIp" : "10.115.75.77",
    "ports" : {
        "1/1/x1" : {
            "portId" : "1/1/x1",
             healthState":"Green"

我试图更新

db.myPortCollection.update({
    { deviceIp:"10.115.75.77"},
    { "chassis.ports.1/1/x10.rtId":"1/1/x10" },
    { $set: { "chassis.ports.1/1/x10.healthState" : "Red" }
})

但是我收到的错误是提到的属性名称是错误的。请帮助正确指定嵌入式地图文档更新的语法。

1 个答案:

答案 0 :(得分:0)

"查询"部分错误,因为您将条件拆分为两个文档。它应该是这样的:

db.myPortCollection.update(
    { 
        "deviceIp":"10.115.75.77",
        "chassis.ports.1/1/x10.rtId":"1/1/x10"
    },
    { "$set": { "chassis.ports.1/1/x10.healthState" : "Red" } }
)

只要查询匹配(问题中未显示有效数据),就会设置或添加指定字段。