Kiedy Twój przypadek użycia wymaga transakcji, które obejmują wiele dokumentów, MongoDB zwykle źle się do tego nadaje, ponieważ nie obsługuje operacji atomowych, gdy dotyczy to więcej niż jednego dokumentu.
Możliwe obejście to dwufazowe-zatwierdzenie model.
Zasadniczo oznacza to, że najpierw dodajesz opis, co chcesz zrobić do każdego dokumentu, jako dodatkowe pole do niego. Następnie wykonujesz niepodzielną operację na każdym dokumencie, która stosuje tę akcję i usuwa opis. Każdy z tych kroków jest potwierdzany przez późniejsze odpytanie dokumentu, a każdy krok transakcji jest dokumentowany trzecim dokumentem w dodatkowym zbiorze transakcji oczekujących. Pozwala to sprawdzić oczekujące transakcje i wycofać je.
Ta metoda jest trudna do wdrożenia i wiąże się ze znacznymi kosztami. Zanim to zaimplementujesz, powinieneś naprawdę zastanowić się, czy naprawdę istnieje dobry powód, aby nie używać systemu bazy danych z natywną obsługą transakcji.