向 MongoDB 中的现有文档添加属性

Add an attribute to an existing document in MongoDB

我有一个 mongoDB collection 这样的:

{
    "_id" : ObjectId("54bd056621396c50b6da3d4
    "name" : "Nagaland",
    "districts" : [
            {
                    "name" : "Wokha",
                    "population" : {
                            "2011" : 161223
                    }
            },
            {
                    "name" : "Mokokchung",
                    "population" : {
                            "2011" : 232085
                    }
            },
            {
                    "name" : "Zunheboto",
                    "population" : {
                            "2011" : 153955
                    }
            }
    ]}

现在我想为每个地区添加更多属性,例如位置,sex-ratio 等。我该怎么做?当我使用更新时,它正在添加到不在特定地区内的 parent。

如果您在嵌套文档中插入静态字段,那么下面的脚本可能会起作用

       db.collectionName.find({
   "districts":{"$exists":true}}).forEach(function(data){
    for(var i=0;i<data.districts.length;i++) {
      db.collectionName.update(
     { 
     "_id": data._id, 
     "districts.name": data.districts[i].name 
     },
     {
     "$set": {
       "districts.$.location": "A",
       "districts.$.sex": "M/F",

     }
     },true,true
      );
  }
})