Ada beberapa poin tentang pertanyaan ini.
-
Anda tidak dijamin memiliki konsistensi baca-setelah-tulis kecuali Anda menggunakan salah satu
"safe=true"
,"w=1"
(atau lebih besar) atau"j=true"
dengan tulisanmu. Anda dapat menyertakan ini sebagai bagian dari insert() atauupdate()
perintah, atau gunakanset_lasterror_options()
untuk menyetel opsi ini untuk koneksi, database, atau koleksi yang Anda gunakan. -
Jika Anda mengizinkan pembacaan dari node sekunder, (misalnya ReadPreference selain PRIMARY), maka Anda tidak akan mendapatkan semantik read-after-write, tetapi hanya konsistensi akhirnya.
-
Jika Anda menggunakan ReadPreference dari PRIMARY dan Anda menyetel opsi kesalahan terakhir yang sesuai, maka Anda dijamin mendapatkan semantik baca-setelah-tulis pada semua operasi yang menggunakan soket yang sama, yaitu utas yang sama.
-
Jika Anda menggunakan banyak utas, dan Anda TIDAK membaca dari simpul sekunder, maka Anda dijamin mendapatkan konsistensi baca-setelah-tulis selama Anda mengeluarkan pembacaan di utas kedua setelah penulisan selesai di utas pertama. Anda dapat menggunakan primitif sinkronisasi utas standar untuk memastikan hal ini.