$isolated
neemt een schrijfvergrendeling totdat het schrijven is voltooid of een fout tegenkomt, en het levert de vergrendeling niet op tijdens de verwerking. Dit voorkomt andere lees- en schrijfbewerkingen. Het doet niet bieden alles-of-niets-atomiciteit, want als er een fout optreedt in het 32756e document, blijven de vorige 32755-updates behouden. Er is geen terugdraaiing; de update is niet atomair. De update is geïsoleerd.
Dit zal de OP echter niet helpen, aangezien het zijn eigen update is die documenten verplaatst (via $push
) en waardoor ze twee keer worden geraakt. Gebruik een sortering op een geïndexeerd veld; je hebt altijd _id
.