Pada Mongoose 4+, jangan lupa untuk menyetel baru:benar bersama dengan upsert atau Anda akan mendapatkan dokumen lama sebagai nilai pengembalian, bukan yang diperbarui.
Ini cukup rumit terutama ketika permintaan membuat dokumen, seolah-olah Anda tidak menentukan new:true, Anda menerima dokumen nol (tidak ada dokumen yang ada), tetapi tidak ada kesalahan.
var myObj = ...;
collection.findOneAndUpdate(
{uniqueAttr: myObj.uniqueAttr},
myObj,
{upsert: true, new: true},
function(...) {...}