sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man begränsar antalet uppdateringsdokument i mongodb

Du kan använda:

db.collection.find().limit(NUMBER_OF_ITEMS_YOU_WANT_TO_UPDATE).forEach(
    function (e) {
        e.fieldToChange = "blah";
        ....
        db.collection.save(e);
    }
);

(Krediter för varje kod:MongoDB:Uppdatering av dokument med data från samma dokument)

Vad detta kommer att göra är att bara ändra antalet poster du anger. Så om du vill lägga till ett fält som heter "newField" med värde 1 till endast hälften av dina poster i "samling", till exempel, kan du lägga in

db.collection.find().limit(db.collection.count() / 2).forEach(
    function (e) {
        e.newField = 1;
        db.collection.save(e);
    }
);

Om du sedan vill att den andra halvan också ska ha "newField" men med värde 2, kan du göra en uppdatering med villkoret att newField inte existerar:

db.collection.update( { newField : { $exists : false } }, { $set : { newField : 2 } }, {multi : true} );


  1. Få värden som array av element efter $lookup

  2. MongoDB - hur frågar man efter ett kapslat objekt i en samling?

  3. MongoDB samlad fråga med PHP-drivrutin

  4. Klona en samling i MongoDB