如何在Node.js中重用已执行的查询MongoDB猫鼬

时间:2020-10-20 14:40:40

标签: node.js mongodb express mongoose

可以重用nodejs中已经exec的mongodb / mongoose查询吗?

例如,我创建这样的查询来检查用户是否存在:

const inviter = await User.findOne({ _id: req.userData._id }).exec()
// there's bunch of code bellow here before update the user data

基本上,如果我想更新数据,则必须再次编写相同的代码并添加如下更新功能:

User.findOneAndUpdate({ _id: req.userData._id }, { $push: { invited: recipient.value } }, { useFindAndModify: false })

是否有可能继续第一个查询并添加简短查询以根据第一个查询的结果进行更新,例如:

inviter.update({ $push: { invited: recipient.value }).exec()

我知道此代码不起作用。

1 个答案:

答案 0 :(得分:0)

您可以使用这种方法:

 User.findOne({ _id: req.userData._id }).exec((err, result) => {
            if(result)
            {
             result.invited =  recipient.value;
             result.save((err) => {
              if (err) // do something
             });
            }
           

        })
    }