猫鼬在 findOneAndUpdate

时间:2021-04-11 08:47:03

标签: javascript mongodb express mongoose

我有以下代码

let doc = await IssueModel.findOne({ content_id })
    IssueModel.findOneAndUpdate({
        content_id
    }, {
        $set: {
            assigned_user,
            status: doc.status==='done' ? 'done' : 'ongoing'
        }
    })

我正在寻找一种更短的方法来省略第一行,并在 findOneAndUpdate 中更新它之前访问 status 当前值,类似于 this 也许吧。 我想更新状态,仅当它与“完成”不同时。

1 个答案:

答案 0 :(得分:1)

你也可以用这个来保存

let doc = await IssueModel.findOne({ content_id })
if(doc.status !== 'done') {
 doc.status = 'ongoing'
 await doc.save();
 return res.json({success: true})
}
res.json({success: true});