我有一个像这样的mongoDB集合:
{
"_id" : ObjectId("54bd056621396c50b6da3d4
"name" : "Nagaland",
"districts" : [
{
"name" : "Wokha",
"population" : {
"2011" : 161223
}
},
{
"name" : "Mokokchung",
"population" : {
"2011" : 232085
}
},
{
"name" : "Zunheboto",
"population" : {
"2011" : 153955
}
}
]}
现在我想在每个地区添加更多属性,如位置,性别比等。我该怎么办?当我使用更新时,它会添加到不在特定区域内的父级。
答案 0 :(得分:1)
如果在嵌套文档中插入静态字段,那么脚本可以正常工作
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
);
}
})