Můžete použít:
db.collection.find().limit(NUMBER_OF_ITEMS_YOU_WANT_TO_UPDATE).forEach(
function (e) {
e.fieldToChange = "blah";
....
db.collection.save(e);
}
);
(Kredity pro každý kód:MongoDB:Aktualizace dokumentů pomocí dat ze stejného dokumentu)
To udělá pouze změnu počtu položek, které určíte. Pokud tedy chcete přidat pole nazvané „newField“ s hodnotou 1 pouze do poloviny vašich záznamů v „collection“, můžete například vložit
db.collection.find().limit(db.collection.count() / 2).forEach(
function (e) {
e.newField = 1;
db.collection.save(e);
}
);
Pokud pak chcete, aby druhá polovina měla také "newField", ale s hodnotou 2, můžete provést aktualizaci s podmínkou, že newField neexistuje:
db.collection.update( { newField : { $exists : false } }, { $set : { newField : 2 } }, {multi : true} );