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

Mongoose:findOneAndUpdate no devuelve el documento actualizado

¿Por qué sucede esto?

El predeterminado es devolver el original, sin alteraciones documento. Si desea que se devuelva el documento nuevo y actualizado, debe pasar un argumento adicional:un objeto con el new propiedad establecida en true .

De los documentos de la mangosta:

Consulta#findOneAndUpdate

Model.findOneAndUpdate(conditions, update, options, (error, doc) => {
  // error: any errors that occurred
  // doc: the document before updates are applied if `new: false`, or after updates if `new = true`
});

Opciones disponibles

  • new :bool - si verdadero , devolver el modificado documento en lugar del original. predeterminado en falso (modificado en 4.0)

Solución

Pase {new: true} si desea el resultado actualizado en el doc variables:

//                                                         V--- THIS WAS ADDED
Cat.findOneAndUpdate({age: 17}, {$set:{name:"Naomi"}}, {new: true}, (err, doc) => {
    if (err) {
        console.log("Something wrong when updating data!");
    }

    console.log(doc);
});