sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongoose VersionError:No se encontró ningún documento coincidente para la identificación cuando se guarda el documento

Mientras que aparecería un .save() es el enfoque correcto aquí, un .update() El comando haría el trabajo ignorando las "condiciones de carrera" que causan este error. Mongo DB arroja este error porque le preocupa que esté guardando una versión anterior del documento que ya se actualizó:

  1. v1 se envía al cliente
  2. v1 se guarda y se actualiza a v2 en Mongo DB
  3. v1 está intentando guardarse de nuevo, pero Mongo DB ya tiene v2 almacenado, se produce un error

Un mejor enfoque es enviar v1 al cliente y cuando el objeto del carrito cambie, sincronice el objeto con el nuevo objeto del carrito sin importar nada. Esto se puede hacer a través de .update() en lugar de a través de .save() .

Esto se debe a que .save() observa y se preocupa por los controles de versión, mientras que .update() actualizará el objeto independientemente del control de versiones.