gpt4 book ai didi

javascript - 如何仅在满足条件时更新文档?

转载 作者:行者123 更新时间:2023-11-30 14:44:16 25 4
gpt4 key购买 nike

我正在尝试在快速 API 中实现一个 put 方法,以允许用户更新文档,但前提是满足条件。假设我有一个 Instance 文档。它的属性之一是executed,如果实例被执行,它可以是true,如果不是,则可以是false。基本上我想允许用户仅在实例尚未执行时更新此文档,如果 executed 属性为 false。

我想出了这种方法,但我想知道是否有更好的方法来实现它,例如,在模式定义中使用 pre 函数。

Instance.findOne({'_id': req.params.id}, function(err, element){
if(!element.executed){
Instance.findOneAndUpdate({'_id': req.params.id}, {$set: req.body}, function(err, element){
...
});
}
})

谢谢!

最佳答案

如果要更新单个文档,可以使用:

Instance.findOneAndUpdate({
'_id': req.params.id,
executed: false
}, req.body, {
new: true
}, (err, instance) => {
if(err){
console.error('error occurred', err);
} else {
console.log('updated instance', instance)
}
});

{new: true} 将返回更新后的实例。

有关更多详细信息,请查看文档 here .

关于javascript - 如何仅在满足条件时更新文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49192805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com