【问题标题】:mongoose access current value before updating it inside findOneAndUpdate猫鼬在 findOneAndUpdate 中更新它之前访问当前值
【发布时间】:2021-07-06 15:03:04
【问题描述】:

我有以下代码

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

我正在寻找一种更短的方法来省略第一行,并在 findOneAndUpdate 中更新它之前访问 status 当前值,类似于 this 也许。 我只想在 status 与“done”不同的情况下更新它。

【问题讨论】:

    标签: javascript mongodb express mongoose


    【解决方案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});
    

    【讨论】:

    • 是的,这是一个比我更好的解决方案,谢谢。 (尽管我仍在寻找有关是否可以访问 findOneAndUpdate 中的旧值的答案)
    猜你喜欢
    • 2020-11-13
    • 2019-05-23
    • 2019-05-31
    • 2022-01-19
    • 2022-01-22
    • 2013-10-27
    • 2021-09-25
    • 2017-10-05
    • 1970-01-01
    相关资源
    最近更新 更多