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

Mongoose VersionError:Nie znaleziono pasującego dokumentu dla identyfikatora podczas zapisywania dokumentu

Chociaż wyglądałoby to na .save() jest tutaj właściwym podejściem, .update() polecenie wykona zadanie, ignorując „warunki wyścigu”, które powodują wystąpienie tego błędu. Mongo DB zgłasza ten błąd, ponieważ obawia się, że zapisuję starszą wersję dokumentu, która została już zaktualizowana:

  1. v1 jest wysyłany do klienta
  2. v1 jest zapisany i zaktualizowany do v2 w Mongo DB
  3. v1 próbuje zostać ponownie zapisany, ale Mongo DB ma już zapisaną wersję v2, zgłaszany jest błąd

Lepszym podejściem jest wysłanie v1 do klienta, a gdy obiekt koszyka się zmieni, zsynchronizuj obiekt z nowym obiektem koszyka bez względu na wszystko. Można to zrobić za pomocą .update() zamiast przez .save() .

Dzieje się tak, ponieważ .save() obserwuje i dba o kontrolę wersji, podczas gdy .update() zaktualizuje obiekt niezależnie od kontroli wersji.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoError:opcja „kursor” jest wymagana, z wyjątkiem agregacji z argumentem wyjaśnij

  2. Jak dynamicznie tworzyć schemat Mongodb za pomocą nodejs

  3. jak połączyć mongo z elasticsearch za pomocą logstash?

  4. Python Mogo ImportError:nie można zaimportować nazwy Connection

  5. Problem z ignorowaniem przypadku Java Spring Mongo Sortuj