Javascript mongoose在findOneAndUpdate内更新当前值之前访问当前值

Javascript mongoose在findOneAndUpdate内更新当前值之前访问当前值,javascript,mongodb,express,mongoose,Javascript,Mongodb,Express,Mongoose,我有以下代码 让doc=wait IssueModel.findOne{content\u id} IssueModel.findOneAndUpdate{ 内容标识 }, { $set:{ 指定的用户, 状态:doc.status==“完成”?“完成”:“正在进行” } } 我正在寻找一种较短的方法来省略第一行,并在findOneAndUpdate中更新它之前访问status current值,可能类似于此。 我只想在状态与“完成”不同时更新状态。您可以再添加一个条件状态!='过滤器部分中的“

我有以下代码

让doc=wait IssueModel.findOne{content\u id} IssueModel.findOneAndUpdate{ 内容标识 }, { $set:{ 指定的用户, 状态:doc.status==“完成”?“完成”:“正在进行” } } 我正在寻找一种较短的方法来省略第一行,并在findOneAndUpdate中更新它之前访问status current值,可能类似于此。
我只想在状态与“完成”不同时更新状态。

您可以再添加一个条件状态!='过滤器部分中的“完成”,如下所示:

IssueModel.findOneAndUpdate({
    content_id,
    status : {$ne : "done"}
}, {
    $set: {
        assigned_user,
        status:  'ongoing'
    }
})

你也可以用这个来保存

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中的旧值