尝试在findOneAndUpdate upsert

时间:2017-09-29 16:12:35

标签: node.js mongodb express mongoose

我将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"会做到这一点,因为它应该返回原始文档,但这不起作用。

有什么想法吗?

谢谢,全部!!

1 个答案:

答案 0 :(得分:2)