code: function(model, id, settings, obj, options, cb) {
        var fieldName, i, len, ref;
        if (settings == null) {
          settings = {};
        }
        if (obj == null) {
          obj = {};
        }
        if (options == null) {
          options = {};
        }
        if (cb == null) {
          cb = function() {};
        }
        Hoek.assert(model, i18n.assertModuleRequired);
        Hoek.assert(id, i18n.assertIdRequired);
        ref = settings.exclude || [];
        for (i = 0, len = ref.length; i < len; i++) {
          fieldName = ref[i];
          delete obj[fieldName];
        }
        if (_.isFunction(options)) {
          cb = options;
          options = {};
        }
        return model.findByIdAndUpdate({
          _id: asObjectId(id)
        }, {
          $set: obj
        }, {
          "new": true
        }, cb);
      }
docs: /*
  Performs a selective update of fields present.
  @param settings[StringArray] exclude array of field names that are always ignored when updating this