MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Sisipkan massal di MongoDB menggunakan luwak

Anda mungkin ingin menggunakan insertMany() metode di sini jika Anda menggunakan versi Mongoose terbaru 4.4.X dan lebih besar, yang pada dasarnya menggunakan Model.collection.insertMany() di bawah kap dan pengemudi mungkin menangani paralelisasi >= 1000 dokumen untuk Anda.

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

atau menggunakan Janji untuk penanganan kesalahan yang lebih baik

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

Ia bekerja dengan membuat sekumpulan dokumen, memanggil .validate() pada mereka secara paralel, dan kemudian memanggil insertMany() pada hasil toObject({ virtuals: false }); dari setiap dokumen. Meskipun insertMany() tidak memicu kait pra-penyimpanan, ia memiliki kinerja yang lebih baik karena hanya melakukan 1 perjalanan pulang pergi ke server daripada 1 untuk setiap dokumen.

Untuk versi luwak ~3.8.8, ~3.8.22, 4.x yang mendukung Server MongoDB >=2.6.x , Anda dapat menggunakan Bulk API sebagai berikut

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. kegagalan mongodump 'locale::facet::_S_create_c_locale name tidak valid'

  2. Cara menghapus mongodb dari Windows

  3. Mengapa database aplikasi Meteor yang telah dijalankan sekali (dan tidak pernah dimuat) menghabiskan hampir 3GB?

  4. Bagaimana cara menghitung bidang rata-rata per hari menggunakan MongoDB?

  5. Zona Waktu Stempel Waktu Musim Semi Mongodb Menyesatkan