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