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

Integralność danych MongoDB

Wątpię, czy jest coś, co może gwarantować integralność danych poza wspomnianym 2-fazowym zatwierdzaniem. Przynajmniej do czasu ogłoszonej wersji 4 .

Jest kilka rzeczy, które minimalizują szanse na błędne zliczenie. Połącz wstawianie i aktualizację w jednym Zbiorczo . Zmniejszy to prawdopodobieństwo niepowodzenia jednej z operacji po stronie aplikacji, ponieważ jest to pojedyncze żądanie.

Następnie sprawdź, czy nInserted === 1 i nModified === 1 . W przeciwnym razie spróbuj ponownie lub umieść w kolejce zadanie ponownego obliczenia dla podanego identyfikatora postu.

W przypadku ponownych prób konieczne jest posiadanie możliwych do powtórzenia zapisów włączone, ponieważ zamierzasz używać $inc na postach, co jest dość dalekie od idempotentnej operacji.

Inną opcją jest zastosowanie bez transakcji podejście - rodzaj kombinacji "Uruchamiaj skrypt co jakiś czas, aby zaktualizować numer komentarzy" i "W ogóle nie przechowuj numeru komentarzy". Będziesz musiał zachować znaczniki czasu ostatniego zadania ponownego obliczenia i liczyć nowe komentarze od daty.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Dopełnienie w SQL

  2. Częściowa aktualizacja poddokumentu za pomocą nodejs/mongoose

  3. BsonSerializationException występuje, gdy nazwa elementu kończy się kropką

  4. Wyszukiwanie pełnotekstowe z wagą w manguście

  5. Uzyskaj różne daty ISO według dni, miesięcy, roku