Tente o seguinte código:
db.collection.find(your_querry).forEach(function(doc) {
doc.field1 = doc.field2.length;
db.collection.save(doc);
});
Você pode usar
your_querry
para selecionar apenas parte da coleção original, execute uma atualização. Se você quiser processar uma coleção inteira, use your_querry = {}
. Se você quiser que todas as operações sejam atômicas, use
update
em vez de save
:db.collection.find( your_querry, { field2: 1 } ).forEach(function(doc) {
db.collection.update({ _id: doc._id },{ $set: { field1: doc.field2.length } } );
});