MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да ограничите броя на документите за актуализиране в mongodb

Можете да използвате:

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

(Кредити за forEach код:MongoDB:Актуализиране на документи с помощта на данни от същия документ)

Това ще направи само промяна на броя на записите, които сте посочили. Така че, ако искате да добавите поле, наречено "newField" със стойност 1 само към половината от вашите записи в "collection", например, можете да поставите

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

Ако след това искате да направите и другата половина да има "newField", но със стойност 2, можете да направите актуализация с условието, че newField не съществува:

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да намерите името на полето в MongoDB на произволна дълбочина

  2. Кой SchemaType в Mongoose е най-добър за времеви печат?

  3. Aggregate $lookup Общият размер на документите в съответстващия конвейер надвишава максималния размер на документа

  4. Грешка при свързване към MongoDb Atlas Server

  5. Как да възстановите конкретна колекция в MongoDB с помощта на логическо архивиране