$isolated
nimmt eine Schreibsperre, bis der Schreibvorgang abgeschlossen ist oder ein Fehler auftritt, und gibt die Sperre während der Verarbeitung nicht zurück. Dies verhindert andere Lese- und Schreibvorgänge. Das tut es nicht Bieten Sie eine Alles-oder-Nichts-Atomizität, denn wenn ein Fehler im 32756-ten Dokument auftritt, bleiben die vorherigen 32755-Updates erhalten. Es gibt kein Rollback; Das Update ist nicht atomar. Das Update ist isoliert.
Dies wird dem OP jedoch nicht helfen, da es sein eigenes Update ist, das Dokumente verschiebt (über $push
) und bewirkt, dass sie zweimal getroffen werden. Verwenden Sie eine Sortierung für ein indiziertes Feld. Sie haben immer _id
.