title: Mongoose .pre('save') does not trigger
body: <p>I have the following model for <code>mongoose.model('quotes')</code>:</p>
  
  <pre><code>var mongoose = require('mongoose');
  var Schema = mongoose.Schema;
  
  var quotesSchema = new Schema({
      created: { type: String, default: moment().format() },
      type: { type: Number, default: 0 },
      number: { type: Number, required: true },
  
      title: { type: String, required: true, trim: true},
      background: { type: String, required: true },
  
      points: { type: Number, default: 1 },
      status: { type: Number, default: 0 },
      owner: { type: String, default: "anon" }
  });
  
  var settingsSchema = new Schema({
      nextQuoteNumber: { type: Number, default: 1 }
  });
  
  // Save Setting Model earlier to use it below
  mongoose.model('settings', settingsSchema);
  var Setting = mongoose.model('settings');
  
  quotesSchema.pre('save', true, function(next) {
    Setting.findByIdAndUpdate(currentSettingsId, { $inc: { nextQuoteNumber: 1 } }, function (err, settings) {
      if (err) { console.log(err) };
      this.number = settings.nextQuoteNumber - 1; // substract 1 because I need the 'current' sequence number, not the next
      next();
    });
  });
  
  mongoose.model('quotes', quotesSchema);
  </code></pre>
  
  <p>There is an additional Schema for <code>mongoose.model('settings')</code> to store an incrementing number for the incrementing unique index <code>Quote.number</code> im trying to establish. Before each save, <code>quotesSchema.pre('save')</code> is called to read, increase and pass the <code>nextQuoteNumber</code> as <code>this.number</code> to the respectively <code>next()</code> function.</p>
  
  <p>However, this entire <code>.pre('save')</code> function does not seem to trigger when saving a <code>Quote</code> elsewhere. Mongoose aborts the save since <code>number</code> is required but not defined and no <code>console.log()</code> i write into the function ever outputs anything.</p>