sql >> Database >  >> NoSQL >> MongoDB

Hoe het aantal bijwerkdocumenten in mongodb te beperken

U kunt gebruiken:

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

(Credits voor forEach-code:MongoDB:documenten bijwerken met gegevens uit hetzelfde document)

Wat dit zal doen, is alleen het aantal vermeldingen dat u opgeeft, wijzigen. Dus als u een veld met de naam "newField" met waarde 1 wilt toevoegen aan slechts de helft van uw invoer in "collection", bijvoorbeeld, kunt u

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

Als je dan de andere helft ook "newField" wilt maken maar met waarde 2, kun je een update doen met de voorwaarde dat newField niet bestaat:

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


  1. Nu beschikbaar:volledig gehoste MongoDB-instanties op AWS

  2. Golang + MongoDB ingebed type (een struct insluiten in een andere struct)

  3. Mongo-fout op I control hotfix

  4. findOne Subdocument in Mongoose