title: Mongoose error 40 trying to update createdAt field
body: <p>I have the following model</p>
  
  <pre><code>const assetSchema = new Mongoose.Schema({
    userID:         { type: ObjectId, required: true, ref: 'User' },
    status:         { type: String,   default: 'active' },
    title:          { type: String,   default: '' },
    description:    { type: String,   default: '' },
    images:         { type: Object,   default: [] },
    videos:         { type: Object,   default: [] },
    comments:       [ Message ],
  },
  {
    timestamps: true
  })
  </code></pre>
  
  <p>When users create an asset, it will be a draft with only objectId and some other fields with their default values. Then the user will call the edit service as mamy times as needed, and then finally call a separate service to "publish" the asset.</p>
  
  <p>This is the relevant code of the publish service:</p>
  
  <pre><code>asset.update({ status: 'active', createdAt: Date.now() }).exec()
  </code></pre>
  
  <p>This is working with mongodb 2.6, however, after migrating the database to mongodb 3.6 it throws the following error:</p>
  
  <pre><code>{
    name: 'MongoError',
    message: 'Updating the path \'createdAt\' would create a conflict at \'createdAt\'',
    driver: true,
    index: 0,
    code: 40,
    errmsg: 'Updating the path \'createdAt\' would create a conflict at \'createdAt\''
  }
  </code></pre>
  
  <p>The reason I'm updating the createdAt field is because for all use cases the asset's creation date should be the date the user published it, and not the date the user created the draft</p>