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

Temukan dan Hapus Luwak

Seperti yang telah Anda catat, menggunakan yang berikut ini tidak akan mengembalikan dokumen:

Data.find(query).remove().exec(function(err, data) {
  // data will equal the number of docs removed, not the document itself
}

Dengan demikian, Anda tidak dapat menyimpan dokumen di ActionCtrl menggunakan pendekatan ini.

Anda dapat mencapai hasil yang sama menggunakan pendekatan asli Anda, atau menggunakan beberapa bentuk iterasi. Pustaka aliran kontrol seperti async mungkin berguna untuk menangani panggilan async. Itu tidak akan mengurangi kode Anda, tetapi akan mengurangi kueri. Lihat contoh:

Data.find(query, function(err, data) {
  async.each(data, function(dataItem, callback) {
    dataItem.remove(function(err, result) {
      ActionCtrl.saveRemove(result, callback);
    });
  });
});

Jawaban ini mengasumsikan bahwa ActionCtrl.saveRemove() implementasi dapat mengambil dokumen individual sebagai parameter, dan dapat menjalankan panggilan balik dari async.each lingkaran. async.each membutuhkan panggilan balik untuk dijalankan tanpa argumen di akhir setiap iterasi, jadi Anda idealnya menjalankan ini di akhir .saveRemove()

Perhatikan bahwa remove metode pada dokumen individual akan benar-benar mengembalikan dokumen yang telah dihapus.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Gagal terhubung ke 127.0.0.1:27017, alasan:errno:111 Koneksi ditolak

  2. Memutakhirkan mongodb tidak berpengaruh dan masih menampilkan versi lama

  3. Konversi Golang BSON

  4. Meteor secara dinamis menyaring dropdown ketika dropdown lain dipilih

  5. Bisakah MongoDB di-host dalam proses?