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

¿Cómo mover dinero con MongoDB?

Cuando su caso de uso requiere transacciones que abarcan varios documentos, MongoDB no suele ser una buena opción porque no admite operaciones atómicas cuando se ve afectado más de un documento.

Una posible solución es two-phase-commit modelo.

Básicamente significa que primero agrega una descripción de lo que desea hacer en cada documento como un campo adicional. Luego, realiza una operación atómica en cada documento que aplica esa acción y elimina la descripción. Cada uno de estos pasos se confirma consultando el documento posteriormente y cada paso de la transacción se documenta mediante un tercer documento en una colección adicional de transacciones pendientes. Esto le permite verificar las transacciones pendientes y revertirlas.

Este método es difícil de implementar y tiene una sobrecarga considerable. Antes de implementar esto, realmente debería considerar si realmente hay una buena razón para no usar un sistema de base de datos con soporte nativo para transacciones.