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

Node.js, MongoDB - Memasukkan/memperbarui banyak dokumen dan mengirim satu respons

Anda mungkin ingin mencoba async modul untuk ini. Ini memiliki beberapa metode yang sangat membantu untuk memproses setiap item dalam koleksi, dan menawarkan fungsionalitas ketika semua pemrosesan telah selesai.

Saya merujuk Anda secara khusus ke antrian fungsi, yang memungkinkan Anda menambahkan tugas ke antrean, lalu setelah semua item diproses, lakukan sesuatu.

Misalnya, Anda dapat melakukan sesuatu seperti:

var q = async.queue(function(task, callback) {
  // task.doc would contain your individual doc to process

  // your insert / update logic goes here...

  // Callback signifies you're done with this task
  callback();

}, 2) // <--- this number specifies the number of tasks to run in parallel

q.drain = function() {
  // this is the queue's callback, called when the queue is empty,
  // i.e. when all your documents have been processed.

  res.send(statusCode, message);
} 

Kemudian, jika kami menganggap Anda memiliki daftar dokumen dalam variabel bernama dokumen , yang perlu Anda lakukan untuk memproses semuanya adalah memasukkannya ke dalam antrean.

for (var doc in docs) {
  q.push({ doc: docs[doc] }, function(err) {
    if (err) console.log(err);
  })
}

Protip:Anda perlu mendorong objek berisi dokumen ke antrian. Ada kesalahan aneh jika Anda mencoba memasukkan objek yang tidak dibungkus.

Sekarang, jika Anda menginginkan status spesifik untuk setiap dokumen yang Anda proses di Mongo, ini sangat mungkin seperti ini. Selama Anda membuat instance struktur data di luar antrian, Anda bisa menambahkan statusCodes (dll.) ke dalamnya saat setiap item diproses, dan mengirim struktur ke klien di drain antrian fungsi. Seharusnya tidak terlalu merepotkan.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB Java:Menemukan objek di Mongo menggunakan QueryBuilder $in operator tidak menghasilkan apa-apa

  2. pilih 2 bidang dan kembalikan array yang diurutkan dengan nilainya yang berbeda

  3. Fragmentasi data dalam koleksi mongo

  4. NoSQL (MongoDB) vs Lucene (atau Solr) sebagai database Anda

  5. Melacak Penggunaan Memori MongoDB