[Mongoose] model.save({ validateBeforeSave: false }) で validate をスキップできる

Tadashi Shigeoka ·  Fri, February 3, 2017

Mongoose 4.2.0 から model.save() のときにバリデーションをスキップするためのオプション validateBeforeSave が追加されています。

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 からしか使えないので古いバージョンを利用しているなら早くアップデートすることをオススメします。

参考情報