MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zaktualizuj wiele dokumentów w mongoDB z różnymi wartościami

Najlepiej wykonać tę aktualizację za pomocą bulkWrite API. Rozważ następujący przykład dla powyższych dwóch dokumentów:

var bulkUpdateOps = [
    {
        "updateOne": {
            "filter": { "reference": 10 },
            "update": { "$push": { "history": history1 } }
        }
    },
    {
        "updateOne": {
            "filter": { "reference": 20 },
            "update": { "$push": { "history": history2 } }
        }
    }
];

mongo.financeCollection.bulkWrite(bulkUpdateOps, 
    {"ordered": true, "w": 1}, function(err, result) {
        // do something with result
        callback(err); 
    }

{"ordered": true, "w": 1} zapewnia, że ​​dokumenty będą aktualizowane seryjnie na serwerze w podanej kolejności, dzięki czemu w przypadku wystąpienia błędu wszystkie pozostałe aktualizacje zostaną przerwane. {"w": 1} opcja określa problem dotyczący zapisu, przy czym 1 jest potwierdzeniem żądania, że ​​operacja zapisu została przekazana do samodzielnego mongod lub podstawowego w zestawie replik.

Dla MongoDB >= 2.6 i <= 3.0 , użyj interfejsu API operacji zbiorczych w następujący sposób:

var bulkUpdateOps = mongo.financeCollection.initializeOrderedBulkOp();
bulkUpdateOps
    .find({ "reference": 10 })
    .updateOne({
        "$push": { "history": history1 }
    });
bulkUpdateOps
    .find({ "reference": 20 })
    .updateOne({
        "$push": { "history": history2 }
    });

bulk.execute(function(err, result){
    bulkUpdateOps = mongo.financeCollection.initializeOrderedBulkOp();
    // do something with result
    callback(err);
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Serializuj/deserializuj dokument MongoDB Bson przy użyciu oficjalnego sterownika C#

  2. Replikacja MongoDB ulega awarii i nie chce się ponownie uruchomić

  3. MongoDB i Mongoose:zagnieżdżona tablica identyfikatorów referencji dokumentów

  4. Idź:Utwórz interfejs io.Writer do logowania do bazy danych mongodb

  5. Unikalne ograniczenie z dwoma polami w MongoDB