MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongoose VersionError:Beim Speichern des Dokuments wurde kein passendes Dokument für die ID gefunden

Während es ein .save() erscheinen würde ist hier der richtige Ansatz, ein .update() Der Befehl würde die Arbeit erledigen, während "Wettlaufbedingungen" ignoriert werden, die diesen Fehler verursachen. Mongo DB gibt diesen Fehler aus, weil es befürchtet, dass ich eine ältere Version des Dokuments speichere, die bereits aktualisiert wurde:

  1. v1 wird an den Client gesendet
  2. v1 wird gespeichert und in Mongo DB auf v2 aktualisiert
  3. v1 versucht erneut zu speichern, aber Mongo DB hat v2 bereits gespeichert, Fehler wird ausgegeben

Ein besserer Ansatz besteht darin, v1 an den Client zu senden und, wenn sich das Warenkorbobjekt ändert, das Objekt mit dem neuen Warenkorbobjekt zu synchronisieren, egal was passiert. Dies kann über .update() erfolgen statt über .save() .

Das liegt daran, dass .save() überwacht und kümmert sich um Versionskontrollen, während .update() aktualisiert das Objekt unabhängig von der Versionskontrolle.