Vergeet vanaf Mongoose 4+ niet new:true in te stellen samen met upsert of u krijgt het oude document als retourwaarde, niet de bijgewerkte.
Dit is best lastig, vooral wanneer het verzoek een document aanmaakt, alsof u geen nieuw specificeert:waar, u ontvangt een null-document (er was geen bestaand document), maar geen fout.
var myObj = ...;
collection.findOneAndUpdate(
{uniqueAttr: myObj.uniqueAttr},
myObj,
{upsert: true, new: true},
function(...) {...}