如何在MongoDB中执行动态文档更新?

时间:2014-05-19 11:42:03

标签: mongodb

如何在MongoDB中执行动态文档更新? (来自终端应用程序mongo,必须使用其他库,例如mongoose用于nodejs)

我的第一次尝试似乎并没有真正更新任何内容:

db.people.find().forEach( function(myDoc) { myDoc.field = myDoc.field.replace(/\/./g, '/'); } );

http://docs.mongodb.org/manual/reference/method/db.collection.update/#update-parameter上的更新文档似乎只是讨论"静态"更新(因此您无法使用文档属性的现有值来确定新值应该是什么)。

我是否需要使用MapReduce功能?

1 个答案:

答案 0 :(得分:1)

您一次有正确的方法来执行此一个文档,但您需要在集合上调用save以将更改提交到myDoc

db.people.find().forEach( function(myDoc) { 
    myDoc.field = myDoc.field.replace(/\/./g, '/'); 
    db.people.save(myDoc);
} );