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

Como movimentar dinheiro com o MongoDB?


Quando seu caso de uso requer transações que abrangem vários documentos, o MongoDB geralmente não é adequado, porque não suporta operações atômicas quando mais de um documento é afetado.

Uma possível solução alternativa é o two-phase-commit modelo.

Basicamente, significa que você primeiro adiciona uma descrição do que deseja fazer em cada documento como um campo adicional a ele. Em seguida, você executa uma operação atômica em cada documento que aplica essa ação e remove a descrição. Cada uma dessas etapas é confirmada consultando o documento posteriormente e cada etapa da transação é documentada por um 3º documento em uma coleção adicional de transações pendentes. Isso permite que você verifique transações pendentes e reverta-as.

Este método é difícil de implementar e tem uma sobrecarga considerável. Antes de implementar isso, você deve realmente considerar se há realmente uma boa razão para não usar um sistema de banco de dados com suporte a transações nativas.