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

Групово вмъкване в MongoDB с помощта на mongoose

Може да искате да използвате insertMany() метод тук, ако използвате най-новата версия на Mongoose 4.4.X и по-голяма, която по същество използва Model.collection.insertMany() под капака и драйверът може да се справи с паралелизирането >= 1000 документи за вас.

myData = [Obj1, Obj2, Obj3.......];
Collection1.insertMany(myData, function(error, docs) {});

или използване на Promises за по-добра обработка на грешки

Collection1.insertMany(myData)
    .then(function(docs) {
         // do something with docs
    })
    .catch(function(err) {
        // error handling here
    });

Работи чрез създаване на куп документи, извиква .validate() върху тях паралелно и след това извиква insertMany() върху резултата от toObject({ virtuals: false }); на всеки документ. Въпреки че insertMany() не задейства куки за предварително записване, има по-добра производителност, защото прави само 1 двупосочно пътуване до сървъра, вместо 1 за всеки документ.

За версии на Mongoose ~3.8.8, ~3.8.22, 4.x които поддържат MongoDB сървър >=2.6.x , можете да използвате Bulk API както следва

var bulk = Collection1.collection.initializeOrderedBulkOp(),
    counter = 0;

myData.forEach(function(doc) {
    bulk.insert(doc);

    counter++;
    if (counter % 500 == 0) {
        bulk.execute(function(err, r) {
           // do something with the result
           bulk = Collection1.collection.initializeOrderedBulkOp();
           counter = 0;
        });
    }
});

// Catch any docs in the queue under or over the 500's
if (counter > 0) {
    bulk.execute(function(err,result) {
       // do something with the result here
    });
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Връзката с Mongo е затворена в приложението keystonejs

  2. findOne поддокумент в Mongoose

  3. Нулиране на връзката от Peer pymongo

  4. Как да се справяте с взаимоотношенията, докато използвате mongodb

  5. Pymongo за всяко форматиране