sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongoose VersionError:Der blev ikke fundet noget matchende dokument til id, når dokumentet gemmes

Mens det ser ud som en .save() er den rigtige tilgang her, en .update() kommandoen ville få jobbet gjort, mens du ignorerer "raceforhold", der forårsager denne fejl. Mongo DB kaster denne fejl, fordi den er bekymret for, at jeg gemmer en ældre version af dokumentet, der allerede er blevet opdateret:

  1. v1 sendes til klient
  2. v1 er gemt og opdateret til v2 i Mongo DB
  3. v1 forsøger at blive gemt igen, men Mongo DB har allerede v2 gemt, fejlen opstår

En bedre tilgang er at sende v1 til klienten, og når vognobjektet ændres, synkronisere objektet med det nye vognobjekt uanset hvad. Dette kan gøres via .update() i stedet for gennem .save() .

Dette er fordi .save() ser og bekymrer sig om versionskontrol, mens .update() vil opdatere objektet uanset versionskontrol.




  1. Hvordan skriver man matchbetingelse for matrixværdier?

  2. Mongoose sender data ud af withTransaction helper

  3. Hvornår skal man bruge GridFS på MongoDB?

  4. PyMongo-tutorial:Test af MongoDB-failover i din Python-app