いくつかの必須フィールドを持つスキーマがあります。propを使用してドキュメントを保存するときに、検証を実行せずpublished:false
にドキュメントをそのまま保存したいと考えています。後で、すべての検証を実行したいと思います。published:true
私はこれがうまくいくと思った:
MySchema.pre('validate', function(next) {
if(this._doc.published === false) {
//don't run validation
next();
}
else {
this.validate(next);
}
});
しかし、これは機能していません。必要なプロパティで検証エラーが返されます。
では、一部のシナリオで検証を実行せず、別のシナリオで実行するにはどうすればよいでしょうか? これを行う最もエレガントな方法は何ですか?