title: Update document with error: Cast to string failed for value undefined
body: <p>I have a simple document with name (require), description (optional). In my model, I update a document with a valid id and I pass description with value undefined because I want to remove this property from document. However, I got following error:
  <strong>message=Cast to string failed for value "undefined" at path "description", name=CastError, type=string, value=undefined, path=description</strong> . How do I remove description property on update when user does not provide description? Is it possible?</p>
  
  <p>Thanks</p>
  
  <pre><code>/*jslint indent: 2, node: true, nomen: true*/
  
  'use strict';
  
  var Schema = require('mongoose').Schema;
  var mongoose = require('mongoose');
  
  var mongooser = require('../../lib/mongooser');
  
  // Schema
  
  var schema = new Schema({
    name: {
      required: true,
      set: mongooser.trimSetter,
      trim: true,
      type: String,
      unique: true
    },
    description: {
      set: mongooser.trimSetter,
      trim: true,
      type: String
    }
  });
  
  // Export
  
  module.exports = mongoose.model('Role', schema);
  </code></pre>
  
  <p><strong>// Role.js</strong></p>
  
  <pre><code>var update = function (model, callback) {
      var test = { name: 'Users', description: undefined };
  
      RoleSchema.findByIdAndUpdate(model.id, test, function (error, role) {
        callback(error, role);
      });
  };
  </code></pre>