将一个属性的值更新为同一文档中另一个属性的值

时间:2012-11-26 20:59:05

标签: mongodb mongodb-.net-driver

我们如何在MongoDb中复制以下sql查询?

update Person set Alias = Name;

其中Person表的列为Alias, Name

我希望查询影响多行。如果更新查询不能支持upsert并不重要,我只需要更新&不插入。

2 个答案:

答案 0 :(得分:2)

不幸的是,MongoDB中没有该功能。您需要循环遍历文档,一次更新一次,并执行读取 - 更新对。

如果您希望这是并发安全的,那么您需要实现某种锁定;无论是乐观的还是悲观的。

答案 1 :(得分:0)

myDb.myCollection.find({}).forEach(
function (person) { 
      person.Alias = person.Name
      myDb.myCollection.save(person)
}
)