MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongoose VersionError:Nenhum documento correspondente encontrado para id quando o documento está sendo salvo


Embora pareça um .save() é a abordagem correta aqui, um .update() comando faria o trabalho enquanto ignorava as "condições de corrida" que causam esse erro. O Mongo DB está lançando este erro porque está preocupado que eu esteja salvando uma versão mais antiga do documento que já foi atualizado:
  1. v1 é enviado ao cliente
  2. v1 é salvo e atualizado para v2 no Mongo DB
  3. A v1 está tentando ser salva novamente, mas o Mongo DB já tem a v2 armazenada, o erro é gerado

Uma abordagem melhor é enviar v1 para o cliente e, quando o objeto do carrinho mudar, sincronize o objeto com o novo objeto do carrinho, não importa o que aconteça. Isso pode ser feito via .update() em vez de .save() .

Isso ocorre porque .save() observa e se preocupa com os controles de versão, enquanto .update() atualizará o objeto independentemente do controle de versão.