MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Kann $isolated bei einem Multi-Update aufhören, geänderte Dokumente in natürlicher Reihenfolge zu lesen?

$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 .