【问题标题】:Trying to capture _id after findOneAndUpdate upsert在 findOneAndUpdate upsert 之后尝试捕获 _id
【发布时间】:2018-03-11 14:28:54
【问题描述】:

我第一次将 findOneAndUpdate 与“upsert”一起使用。我正在替换我最初拥有的一些丑陋的代码。

我真的很喜欢重构的干净程度,但我的一个要求是,如果创建了新记录,我需要捕获 _id 以立即在另一个进程中使用。

问题是,如果记录不存在并且它执行“更新插入”,则返回为空。

我试过 returnNewDocument: true & false 但没有运气。

这是我的代码的结构:

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”可以解决问题,因为它应该返回原始文档,但这不起作用。

有什么想法吗?

谢谢大家!!

【问题讨论】:

  • 另外,下次你问这样的问题时,请确保你清楚地说明你正在使用的库 - 在这种情况下是 mongoose。
  • 谢谢,maowtm。看起来它成功了。我认为猫鼬是在标签中推断出来的。下次我一定会明确说明。

标签: node.js mongodb express mongoose


【解决方案1】:

【讨论】:

    猜你喜欢
    • 2013-06-19
    • 2012-10-24
    • 2018-05-09
    • 2016-05-08
    • 1970-01-01
    • 2011-05-24
    • 1970-01-01
    • 2019-08-25
    • 2017-09-12
    相关资源
    最近更新 更多