2015-09-09 77 views
0

我有一个像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" } 
}) 

但我得到这个属性提到的名字是错的错误,请您及时帮助下,地图有价证券价值为嵌入式地图文档更新指定正确的语法。

回答

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" } } 
) 

而且只要查询接着匹配(有效数据在你的问题未显示),然后指定字段将被设置或添加。

+0

感谢布雷克斯,我已经尝试过类似的方式,但仍然存在一些错误> db.cachedNodeChassis.update({“deviceIp”:10.115.75.77“,”chassis.ports.1/1/x10.p ortId“ :“1/1/x10”},{$ set:{“chassis.ports.1/1/x10.duplex”:“test”}})2015-09-09T14:28:18.793 + 0530 E QUERY SyntaxError :意想不到的号码 – Naidu

+0

@NarayanaPachava请从上面剪切并粘贴您的错误表明您正在输入内容并且您没有正确引用字段检查所有“dot notated”字段是否完全包含在引号中您还看起来有很好的括号至少与上面的内容相比, –

+0

非常感谢@Blakes Seven,它的工作原理!!欣赏您在即时回复 – Naidu