次のコードを試してください:
db.collection.find(your_querry).forEach(function(doc) {
doc.field1 = doc.field2.length;
db.collection.save(doc);
});
your_querry
を使用できます 元のコレクションの一部のみを選択するには、更新を実行します。コレクション全体を処理する場合は、your_querry = {}
を使用します 。
すべての操作をアトミックにする場合は、update
を使用します save
の代わりに :
db.collection.find( your_querry, { field2: 1 } ).forEach(function(doc) {
db.collection.update({ _id: doc._id },{ $set: { field1: doc.field2.length } } );
});