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

Apakah memindahkan dokumen antar koleksi merupakan cara yang baik untuk merepresentasikan perubahan status di MongoDB?

Ya ini adalah dengan desain. MongoDB secara eksplisit tidak menyediakan join atau transaksi. Hapus + Simpan adalah bentuk transaksi.

Anda benar-benar memiliki dua opsi kompleksitas rendah di sini, keduanya melibatkan findAndModify .

Opsi #1:satu koleksi

Berdasarkan deskripsi Anda, pada dasarnya Anda sedang membangun antrian dengan beberapa fitur tambahan. Jika Anda memanfaatkan satu koleksi maka Anda menggunakan findAndModify untuk memperbarui status setiap item saat sedang diproses.

Sayangnya, itu berarti Anda akan kehilangan ini:...bahwa koleksi "masuk" dapat disimpan sangat kecil dan cepat dengan cara ini .

Opsi #2:dua koleksi

Opsi lainnya pada dasarnya adalah komit dua fase, memanfaatkan findAndModify .

Lihat dokumen untuk ini di sini .

Setelah item diproses di A Anda mengatur bidang untuk menandainya untuk dihapus. Anda kemudian menyalin item itu ke B . Setelah disalin ke B Anda kemudian dapat menghapus item dari A .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana cara memulai kembali rantai janji secara kondisional dari awal?

  2. Hasil unik Rails &Mongoid

  3. g++ tidak dapat menautkan statis libmongcxx(r3.0.2) tetapi tautan dinamis berfungsi

  4. Cara mencari di array array objek di mongodb

  5. Docker:ubah folder tempat menyimpan volume buruh pelabuhan