如何在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功能?
答案 0 :(得分:1)
您一次有正确的方法来执行此一个文档,但您需要在集合上调用save
以将更改提交到myDoc
:
db.people.find().forEach( function(myDoc) {
myDoc.field = myDoc.field.replace(/\/./g, '/');
db.people.save(myDoc);
} );