$isolated
mengambil kunci tulis hingga penulisan selesai atau menemukan kesalahan, dan itu tidak menghasilkan kunci saat memproses. Ini mencegah pembacaan dan penulisan lainnya. Itu tidak memberikan atomitas semua-atau-tidak sama sekali karena, jika terjadi kesalahan pada dokumen ke-32756, pembaruan 32755 sebelumnya akan tetap ada. Tidak ada pengembalian; pembaruan tidak atomik. Pembaruan diisolasi.
Namun, ini tidak akan membantu OP, karena pembaruannya sendiri yang memindahkan dokumen (melalui $push
) dan menyebabkan mereka dipukul dua kali. Gunakan pengurutan pada bidang yang diindeks; Anda selalu memiliki _id
.