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

Mongoose findOneAndUpdate y upsert no devuelve errores ni documentos afectados

A partir de Mongoose 4+, no olvide establecer nuevo:verdadero junto con upsert o obtendrá el documento antiguo como valor de retorno, no el actualizado.

Esto es bastante complicado, especialmente cuando la solicitud crea un documento, como si no especificara nuevo:verdadero, recibe un documento nulo (no había ningún documento existente), pero no hay error.

    var myObj = ...;
    collection.findOneAndUpdate(
    {uniqueAttr: myObj.uniqueAttr},
    myObj,
    {upsert: true, new: true},
    function(...) {...}