我的数组如下:
{
"_id" : ObjectId("5704cf4da64ffd34d7285fef"),
"names" : [
{
"name" : "harjeet"
},
{
"name" : "harjeet123"
},
{
"name" : "harjeet1234"
}
]
}
我需要将名称更新为" harjeet12345",所有这些。
我的研究发现:https://jira.mongodb.org/browse/SERVER-1243
有没有办法执行此更新
答案 0 :(得分:1)
var nameStr = "harjeet12345";
c.find().forEach(function (doc) {
var newNameArray = [];
doc.names.forEach(function (y) {
var newName = {name : "zeugor"}
newNameArray.push(newName);
});
c.update(
{ _id: doc._id},
{"$set" : {"names" : newNameArray}}
)
})
答案 1 :(得分:0)
您知道这是mongodb嵌入式文档和文档数组的问题。由于mongodb MongoDB jira已批准其修改,但仍未决定,并希望在下一版本中看到。 这是你现在可以使用的东西
db.yourcollection.find({}).forEach(function(tmp){
names = [];
tmp.names.forEach(function(name){
names.push({name : 'rummykhan'})
});
tmp.names = names;
db.yourcollection.save(tmp)
})