ここに良いニュースと悪いニュースがあります。
悪いニュースは、AFAIKではupdate()を1回呼び出すだけでは実行できないことです。mongoはupdateで現在のオブジェクトを参照することをサポートしていません。
良いニュースは、それを行う他の方法があるということです。 forEachループを実行できます:
db.item.find(conditions...).snapshot().forEach( function (doc) {
doc.field1 = doc.field2;
db.item.save(doc);
});
forEachは、管理シェル('mongo'コマンド)で実行するか、特定のドライバーのいくつかのメソッドを介して実行できます(たとえば、PHPでは、ここで説明するように、mongodb.execute()で動作することが期待されます:http:/ /www.php.net/manual/en/mongodb.execute.php)