我将findOneAndUpdate用于" upsert"首次。我正在替换我最初的一些丑陋的代码。
我真的很喜欢重构是多么干净,但我的一个要求是如果创建了一条新记录,我需要捕获_id以便在紧随其后的另一个进程中使用。
问题在于,如果一条记录不存在并且它有一个" upsert"返回为空。
我尝试过returnNewDocument:true&虚假但没有运气。
以下是我的代码的结构:
Model.findOneAndUpdate(
{ "user_email" : req.body.userEmail},
{ $set: { "property_1" : req.body.prop1, "property_2": req.body.prop2 } },
{
upsert: true,
returnNewDocument: true
},
function(err, data){
if(err)
console.log('Error in find one and update');
console.log('Show data result: ', data);
})
我认为将returnNewDocument更改为" false"会做到这一点,因为它应该返回原始文档,但这不起作用。
有什么想法吗?
谢谢,全部!!
答案 0 :(得分:2)