[Mongoose] model.save({ validateBeforeSave: false }) で validate をスキップできる
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 からしか使えないので古いバージョンを利用しているなら早くアップデートすることをオススメします。
参考情報
- Model#save([options], [options.safe], [options.validateBeforeSave], [fn])
| Mongoose API - Mongoose Schemas