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