我有一个包含几个必填字段的架构。当我使用published:false
道具保存文档时,我不想运行任何验证并按原样保存文档。后来,当 时published:true
,我想运行所有的验证。
我认为这会起作用:
MySchema.pre('validate', function(next) {
if(this._doc.published === false) {
//don't run validation
next();
}
else {
this.validate(next);
}
});
但这不起作用,它会返回所需属性的验证错误。
那么如何在某些情况下不运行验证而在其他情况下运行呢?最优雅的方法是什么?