sql >> Databáze >  >> NoSQL >> MongoDB

Mongoose VersionError:Při ukládání dokumentu nebyl nalezen žádný odpovídající dokument pro ID

I když se zobrazí .save() je zde správný přístup, .update() příkaz by dokončil práci a ignoroval "současné podmínky", které způsobují výskyt této chyby. Mongo DB hází tuto chybu, protože se obává, že ukládám starší verzi dokumentu, která již byla aktualizována:

  1. v1 je odeslána klientovi
  2. v1 je uložena a aktualizována na v2 v Mongo DB
  3. v1 se pokouší znovu uložit, ale Mongo DB již má uloženou verzi 2, je vyvolána chyba

Lepší přístup je poslat klientovi v1 a když se objekt košíku změní, synchronizovat objekt s novým objektem košíku bez ohledu na to, co se děje. To lze provést pomocí .update() spíše než prostřednictvím .save() .

Důvodem je .save() sleduje a stará se o ovládání verzí, zatímco .update() aktualizuje objekt bez ohledu na správu verzí.




  1. MongoDB nezpracovává agregaci pomocí allowDiskUsage:True

  2. Sazba požadavků CosmosDb je velká s insertMany

  3. náklady na klíče v databázi dokumentů JSON (mongodb, elasticsearch)

  4. Jak spustit příkaz mongo s ovladačem mongo-go-driver?