MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

O $isolated pode parar de ler documentos alterados em ordem natural em uma atualização múltipla?


$isolated leva um bloqueio de gravação até que a gravação seja concluída ou encontre um erro e não produz o bloqueio durante o processamento. Isso impede outras leituras e gravações. Ele não fornecer atomicidade tudo ou nada porque, se ocorrer um erro no 32756º documento, as 32755 atualizações anteriores permanecerão. Não há reversão; a atualização não é atômica. A atualização é isolada.

No entanto, isso não ajudará o OP, pois é sua própria atualização que está movendo documentos (via $push ) e fazendo com que eles sejam atingidos duas vezes. Use uma classificação em um campo indexado; você sempre tem _id .