如何修改Mongodb中的多文档字段?新值是原始值的扩展

时间:2014-11-16 15:37:18

标签: mongodb

我有mongodb文件:

{
    "_id" : 1,
    "site": "www.a.com"
}

{
    "_id" : 1,
    "site": "www.b.com"
}

我想将它们修改为:

{
    "_id" : 1,
    "site": "http://www.a.com"
}

{
    "_id" : 1,
    "site": "http://www.b.com"
}

我阅读了关于mongodb的文档,但不知道如何添加http://而不是设置新值。

db.test.update(
   { _id: 1 },
   { $set: { site: ? } },
   { multi: true }
)

1 个答案:

答案 0 :(得分:1)

正如@Disposer指出的那样,在具有相同_id的集合中不可能有多个文档。假设这是一个拼写错误,您可以使用 mongo shell 中的光标函数forEach()来实现您想要的效果:

db.foo.find().forEach( function(myDoc) { 
  db.foo.update({"_id": myDoc._id}, {$set: {"site": "http:\\" + myDoc.site}}); 
})