title: schema .pre('save') does not trigger
body: <p>Hi I plan to print out <code>pre</code>after pre method triggered,but it does not work.</p>
  <pre><code>import mongoose from'mongoose'
  mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true, useUnifiedTopology: true });
  const db = mongoose.connection;
  db.on('error', console.error.bind(console, 'connection error:'));
  db.once('open', function() {
    console.log('connected')
  });
  
  // test for pre hooks
  const toySchema = mongoose.Schema({ name: String, created: Date });
  const Toy = mongoose.model('Toy', toySchema)
  
  toySchema.pre('save', function(next) {
    if (!this.created) this.created = new Date;
    console.log('pre');
    next(new Error('something went wrong'));
  });
  
  const firstoy = new Toy({ name: 'tank' })
  firstoy.save(function (err, firstoy) {
    if (err) return console.error(err);
  });
  </code></pre>