[Mongoose] model.save({ validateBeforeSave: false }) で validate をスキップできる
重岡 正 · Fri, February 3, 2017
Mongoose 4.2.0 から model.save() のときにバリデーションをスキップするためのオプション validateBeforeSave が追加されています。
- 4.2.0 / 2015-10-22 | mongoose/History.md at master · Automattic/mongoose
- Option to disable validation at the save level · Issue #2981 · Automattic/mongoose
validateBeforeSave のテストコード test/document.test.js#L462-L473
validateBeforeSave オプションを利用するサンプルコードですが、mongoose のテストコードが直感的に理解できそうでした。
it('allows you to skip validation on save (gh-2981)', function(done) {
var db = start();
var MyModel = db.model('gh2981',
{name: {type: String, required: true}});
var doc = new MyModel();
doc.save({validateBeforeSave: false}, function(error) {
assert.ifError(error);
db.close(done);
});
});
Mongoose 4.2.0 からしか使えないので古いバージョンを利用しているなら早くアップデートすることをオススメします。