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

Tidak mungkin mengunci dokumen mongodb. Bagaimana jika saya perlu?

Hei, satu-satunya cara yang saya pikir sekarang adalah menambahkan parameter status dan menggunakan operasi findAndModify(), yang memungkinkan Anda untuk memodifikasi dokumen secara atom. Ini sedikit lebih lambat, tetapi harus berhasil.

Jadi katakanlah Anda menambahkan atribut status dan ketika Anda mengambil dokumen, ubah status dari "IDLE" menjadi "PROCESSING". Kemudian Anda memperbarui dokumen dan menyimpannya kembali ke koleksi memperbarui status menjadi "IDLE" lagi.

Contoh kode:

var doc = db.runCommand({
              "findAndModify" : "COLLECTION_NAME",
              "query" : {"_id": "ID_DOCUMENT", "status" : "IDLE"},
              "update" : {"$set" : {"status" : "RUNNING"} }
}).value

Ubah COLLECTION_NAME dan ID_DOCUMENT ke nilai yang sesuai. Secara default findAndModify() mengembalikan nilai lama, yang berarti nilai status akan tetap IDLE di sisi klien. Jadi setelah Anda selesai memperbarui, simpan/perbarui semuanya lagi.

Satu-satunya pemikiran yang perlu Anda ketahui adalah bahwa Anda hanya dapat mengubah satu dokumen dalam satu waktu.

Semoga membantu.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. menyimpan gambar ke mongodb

  2. MongoDB $bsonSize

  3. Bagaimana cara mencari objek dengan ObjectId-nya di konsol mongo?

  4. Objek bersarang dalam skema luwak

  5. Sambungkan kembali dengan andal ke MongoDB