Når din use-case kræver transaktioner, der spænder over flere dokumenter, passer MongoDB normalt dårligt til det, fordi det ikke understøtter atomoperationer, når mere end ét dokument er påvirket.
En mulig løsning er two-phase-commit model.
Det betyder grundlæggende, at du først tilføjer en beskrivelse af, hvad du vil gøre til hvert dokument som et ekstra felt til det. Derefter udfører du en atomoperation på hvert dokument, som anvender denne handling og fjerner beskrivelsen. Hvert af disse trin bekræftes ved at forespørge dokumentet efterfølgende, og hvert trin i transaktionen dokumenteres af et 3. dokument i en yderligere samling af afventende transaktioner. Dette giver dig mulighed for at tjekke for afventende transaktioner og rulle dem tilbage.
Denne metode er svær at implementere og har betydelige omkostninger. Før du implementerer dette, bør du virkelig overveje, om der virkelig er en god grund til ikke at bruge et databasesystem med indbygget transaktionsunderstøttelse.