sql >> Base de Datos >  >> NoSQL >> MongoDB

Integridad de datos MongoDB

Dudo que haya algo que pueda garantizar integridad de los datos además de la confirmación de 2 fases mencionada. Al menos hasta que anuncie v4 .

Hay algunas cosas para minimizar las posibilidades de obtener recuentos incorrectos. Combine la inserción y la actualización en un solo a granel . Reducirá las posibilidades de que una de las operaciones falle en el lado de la aplicación, ya que es una sola solicitud.

Luego verifique si nInserted === 1 y nModified === 1 . De lo contrario, vuelva a intentar o ponga en cola un trabajo de recálculo para la identificación de publicación dada.

Para reintentos, es esencial tener escrituras reintentables habilitado, ya que vas a usar $inc en las publicaciones, que está bastante lejos de la operación idempotente.

Otra opción es aplicar transactionless enfoque:una especie de combinación de "Ejecutar script cada período de tiempo para actualizar el número de comentarios" y "No almacenar el número de comentarios en absoluto". Deberá mantener las marcas de tiempo del último trabajo de recálculo y contar los nuevos comentarios desde la fecha.