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

Integridade de dados do MongoDB


Duvido que haja algo que possa garantir integridade dos dados além do commit de 2 fases mencionado. Pelo menos até anunciar a v4 .

Há poucas coisas para minimizar as chances de obter contagens erradas. Combine inserção e atualização em um único em massa . Isso reduzirá as chances de uma das operações falhar no lado do aplicativo, pois é uma única solicitação.

Em seguida, verifique se nInserted === 1 e nModified === 1 . Caso contrário, tente novamente ou enfileira um trabalho de recálculo para o ID de postagem fornecido.

Para novas tentativas, é essencial ter gravações que podem ser repetidas habilitado, pois você usará $inc nos postes, o que está muito longe de ser uma operação idempotente.

Outra opção é aplicar transactionless abordagem - uma espécie de combinação de "Executar script a cada período de tempo para atualizar commentsNumber" e "Não armazenar comentáriosNumber em tudo". Você precisará manter os registros de data e hora do último trabalho de recálculo e contar os novos comentários desde a data.