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

Transaksi MongoDB

Anda tidak bisa.
Satu-satunya cara untuk melakukannya adalah dengan membungkus someotherRelationaldb.Save(object); dalam tangkapan percobaan, dan pada tangkapan, lakukan mongoCollection.Remove

Anda mungkin memerlukan properti pengenal yang dikenal di object dan kemudian dapat melakukan sesuatu seperti:

mongoCollection.Remove(Query.EQ("_id", object.Id));

Jadi, agak tidak rapi, metode Simpan Anda akan terlihat seperti:

private void Save(object)
{
   mongoCollection.Save(object);

   try
   {
      someotherRelationaldb.Save(object);
   }
   catch
   {
      mongoCollection.Remove(Query.EQ("_id", object.Id));
   }
}

Cara lain adalah dengan menyimpan properti flag pada object yang diperbarui setelah yang berhasil menulis ke someOtherRelationaldb

Ini juga tidak terlalu ideal, tetapi Anda dapat mengubah kueri untuk hanya mengembalikan dokumen di mana IsPersisted bendera itu benar.

Tak satu pun dari pendekatan ini akan berfungsi dengan baik di lingkungan yang sangat ter-sharding meskipun menurut saya tidak.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Pilih Elemen Array yang Cocok dan Kembalikan Bidang yang Dipilih

  2. Bagaimana cara multi pembaruan array bersarang di MondoDB?

  3. Nodejs mongodb tidak aktif di server

  4. Bisakah kita menggunakan repositori data pegas untuk memperbarui dokumen yang disematkan di mongodb

  5. 6 Alat Berguna untuk Memantau Kinerja MongoDB