docs: function(o, callback) {
      
      var self = this;
  
      // Note: Validation has already been performed by ModelObject
      
      // Convert `id` to `_id`
      convertMongoID(o);
      
      // Get _id, and prepare update data
      var _id = o._id;
      delete o._id;
      
      if (typeof _id == 'undefined') {
        callback.call(this, new Error("Unable to update model object without ID"));
        return;
      }
      
      // Validate, throw error on failure
      var err = this.validateProperties(o, {noRequired: true});
      
      if (err) callback.call(self, err);
      
      else {
        
        this.driver.updateById({
          _id: _id,
          collection: this.context,
          values: o
        }, function(err, docs) {
          callback.call(self, err);
        });
        
      }
      
    }