sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan begrænser du antallet af opdateringsdokumenter i mongodb

Du kan bruge:

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

(Kredit for hver kode:MongoDB:Opdatering af dokumenter ved hjælp af data fra samme dokument)

Hvad dette vil gøre, er kun at ændre antallet af poster, du angiver. Så hvis du vil tilføje et felt kaldet "newField" med værdi 1 til kun halvdelen af ​​dine indtastninger inde i "samling", for eksempel, kan du indsætte

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

Hvis du så vil have den anden halvdel til også at have "newField", men med værdi 2, kan du lave en opdatering med den betingelse, at newField ikke eksisterer:

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


  1. Opdater element i array, hvis der findes andet, indsæt nyt element i det array i MongoDb

  2. Hvorfor returnerer mongoose-modellens hasOwnProperty falsk, når egenskaben eksisterer?

  3. MongoDB med redis

  4. StackExchange.Redis:Batchadgang til flere hashes