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

Актуализирайте много документи в mongoDB с различни стойности

Най-добре е да направите тази актуализация с помощта на bulkWrite API. Разгледайте следния пример за горните два документа:

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} гарантира, че документите ще бъдат актуализирани на сървъра серийно, в предоставения ред и по този начин, ако възникне грешка, всички останали актуализации се прекъсват. {"w": 1} опция определя въпроса за запис, като 1 е потвърждение на заявка, че операцията за запис се е разпространила към самостоятелния mongod или основния в набор от реплики.

За MongoDB >= 2.6 и <= 3.0 , използвайте API за групови операции както следва:

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. Node.js повторно използва препратка към MongoDB

  2. Заявка на Mongo с Regex в Node JS, работеща ВЪРХУ ПРОМЕНИЛА

  3. Изберете Съответстващ елемент на масив и Върнете избраните полета

  4. Mongo db с Monk:улавяне на грешки и обработка, ако db не работи

  5. премахнете _id от резултата от mongo