sql >> Databáze >  >> NoSQL >> MongoDB

Jak omezit počet aktualizací dokumentů v mongodb

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} );


  1. Správný způsob použití Redis Connection Pool v Pythonu

  2. Vysvětlení MongoDB Upsert

  3. Jak funguje řazení pomocí indexu v MongoDB?

  4. MongoDB:Jedinečný klíč ve vloženém dokumentu