变化的领域中一组对象MongoDB中

问题描述:

我有这个文件中蒙戈:变化的领域中一组对象MongoDB中

{ 
    id: objectId, 
    list: [ 
    { 
     id: internalObjectId1, 
     enabled: true 
    }, 
    { 
     id: internalObjectId2, 
     enabled: false 
    }] 
} 

我需要改变能字段。我该怎么做?

+2

这里有些混淆不明白你想把'enabled'键改成其他键名或'enabled'值'true'来转换'false'。 – Yogesh 2015-04-01 12:11:07

使用positional $ operator。假设你有其list元素值集合中的以下文件是嵌入文档数组:

{ 
    "_id" : ObjectId("551be1a04db8a16ac729432e"), 
    "list" : [ 
     { 
      "id" : ObjectId("54f43159c922ac0b4387ef9c"), 
      "enabled" : true 
     }, 
     { 
      "id" : ObjectId("54f43159c922ac0b4387ef9d"), 
      "enabled" : false 
     } 
    ] 
} 

以下将随着54f43159c922ac0b4387ef9dtrueid嵌入文档中更新enabled字段的值:

db.collection.update(
    { 
     "_id": ObjectId("551be1a04db8a16ac729432e"), 
     "list.id": ObjectId("54f43159c922ac0b4387ef9d") 
    }, 
    { 
     "$set": {"list.$.enabled": true} 
    } 
)