MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Czy przenoszenie dokumentów między kolekcjami to dobry sposób na przedstawienie zmian stanu w MongoDB?

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 .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak znaleźć przedmioty za pomocą wyrażenia regularnego w Mongoose

  2. mangusta wyprowadza błąd Błąd:połączenie zamknięte

  3. Jakie parametry są przekazywane do wywołań zwrotnych Mongoose

  4. Sprawdź, czy kolekcja MongoDB jest ograniczona sterownikiem .NET 2.0

  5. MongoDB $toDecimal