Wenn Ihr Anwendungsfall Transaktionen erfordert, die sich über mehrere Dokumente erstrecken, ist MongoDB normalerweise nicht geeignet, da es keine atomaren Operationen unterstützt, wenn mehr als ein Dokument betroffen ist.
Ein möglicher Workaround ist der Zwei-Phasen-Commit Modell.
Es bedeutet im Grunde, dass Sie zuerst eine Beschreibung hinzufügen, was Sie mit jedem Dokument als zusätzliches Feld tun möchten. Dann führen Sie für jedes Dokument eine atomare Operation durch, die diese Aktion anwendet und die Beschreibung entfernt. Jeder dieser Schritte wird durch eine anschließende Abfrage des Dokuments bestätigt und jeder Schritt der Transaktion wird durch ein 3. Dokument in einer zusätzlichen Sammlung von schwebenden Transaktionen dokumentiert. Auf diese Weise können Sie nach ausstehenden Transaktionen suchen und diese rückgängig machen.
Dieses Verfahren ist schwer zu implementieren und hat einen beträchtlichen Overhead. Bevor Sie dies implementieren, sollten Sie wirklich überlegen, ob es wirklich einen guten Grund gibt, ein Datenbanksystem mit nativer Transaktionsunterstützung nicht zu verwenden.