MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

$isolated può interrompere la lettura dei documenti modificati in ordine naturale in un aggiornamento multiplo?

$isolated accetta un blocco di scrittura finché la scrittura non viene completata o rileva un errore e non restituisce il blocco durante l'elaborazione. Ciò impedisce altre letture e scritture. non fornire l'atomicità tutto o niente perché, se si verifica un errore nel documento 32756, i precedenti aggiornamenti 32755 rimarranno. Non c'è rollback; l'aggiornamento non è atomico. L'aggiornamento è isolato.

Ciò non aiuterà l'OP, tuttavia, poiché è il suo stesso aggiornamento che sta spostando i documenti (tramite $push ) e facendoli colpire due volte. Usa un ordinamento su un campo indicizzato; hai sempre _id .