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

Mongoose findOneAndUpdate e upsert não retornam erros, nenhum documento afetado


A partir do Mongoose 4+, não se esqueça de definir new:true junto com upsert ou você obterá o documento antigo como valor de retorno, não o atualizado.

Isso é bastante complicado, especialmente quando a solicitação cria um documento, como se você não especificasse new:true, você recebe um documento nulo (não havia doc existente), mas nenhum erro.
    var myObj = ...;
    collection.findOneAndUpdate(
    {uniqueAttr: myObj.uniqueAttr},
    myObj,
    {upsert: true, new: true},
    function(...) {...}