MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

So begrenzen Sie die Anzahl der Aktualisierungsdokumente in Mongodb

Sie können Folgendes verwenden:

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

(Credits forEach code:MongoDB:Updating documents using data from the same document)

Dadurch wird nur die Anzahl der von Ihnen angegebenen Einträge geändert. Wenn Sie also beispielsweise nur der Hälfte Ihrer Einträge in "Sammlung" ein Feld namens "newField" mit dem Wert 1 hinzufügen möchten, können Sie

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

Wenn Sie dann wollen, dass die andere Hälfte auch "newField" hat, aber mit dem Wert 2, können Sie ein Update mit der Bedingung machen, dass newField nicht existiert:

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