我正在尝试在快速API中实现put方法,以便允许用户更新文档,但仅限于满足条件。假设我有一份Instance
文件。其中一个属性是executed
,如果实例是执行,则可以是true
,如果不是,则可以是false
。executed
基本上我想允许用户仅在实例尚未执行时更新此文档,如果pre
属性为false,则允许用户更新。
我已经提出了这种方法,但我想知道是否有更好的方法来做到这一点,例如,在架构定义中使用Instance.findOne({'_id': req.params.id}, function(err, element){
if(!element.executed){
Instance.findOneAndUpdate({'_id': req.params.id}, {$set: req.body}, function(err, element){
...
});
}
})
函数。
{{1}}
谢谢!
答案 0 :(得分:1)
您可以使用更新方法,
Instance.update({'_id': req.params.id, executed: false}, req.body, function(){})
答案 1 :(得分:1)
如果要更新单个文档,可以使用:
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。