Tak to jest zgodne z projektem. MongoDB jawnie nie udostępnia złączeń ani transakcji. Usuń + Zapisz to forma transakcji.
Naprawdę masz tutaj dwie opcje o niskiej złożoności, obie obejmują findAndModify
.
Opcja nr 1:pojedyncza kolekcja
Bazując na twoim opisie, w zasadzie budujesz kolejkę z kilkoma dodatkowymi funkcjami. Jeśli korzystasz z jednej kolekcji, użyj findAndModify
aby zaktualizować stan każdego elementu podczas przetwarzania.
Niestety oznacza to, że stracisz to:...że „przychodząca” kolekcja może być w ten sposób bardzo mała i szybka .
Opcja #2:dwie kolekcje
Inną opcją jest w zasadzie zatwierdzanie dwufazowe, wykorzystujące findAndModify
.
Zapoznaj się z dokumentacją tego tutaj .
Po przetworzeniu elementu w A ustawisz pole, aby oznaczyć je do usunięcia. Następnie kopiujesz ten element do B . Po skopiowaniu do B następnie możesz usunąć element z A .