向 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
);
}
})
我有一个 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
);
}
})