code: function loadModels() {
    var MODEL_LOCATION = Component.appPath(this.config.schemas),
      self = this;
    try {
      var list = Crux.util.readDirectory(MODEL_LOCATION, 'js');
    } catch (e) {
      // no schema definitions
      return;
    }
  
    list.forEach(function(modelPath) {
      var colName = modelPath.replace(MODEL_LOCATION, '').replace('.js', '');
      colName = colName.substr(1);
      colName = colName.replace(/\//g, '_').replace(/\\/g, '_');
      var schemaName = Crux.util.capitalize(colName, true);
      var modelFunc = require(modelPath);
      if (typeof modelFunc !== 'function') {
        log.warn('Crux.mongo: failed to load schema %s, not a function', schemaName);
        return;
      }
      var modelObj = self.Register(schemaName, colName);
      modelFunc(modelObj, self.getTypes());
      if (!modelObj.hasFields) {
        log.warn('Crux.mongo: schema definition "%s" has no fields. Skipping', colName);
        return;
      }
      if (typeof self.schemas[modelObj.__name] !== 'undefined') {
        throw new Error('Crux.mongo: Schema ' + modelObj.__name + ' previously defined.');
      }
      var schemaObj = modelObj.toMongoose(mongoose);
      self.schemas[modelObj.__name] = schemaObj;
    });
  }
docs: The function wil load all the schema definition models from the configured path. It will then perform auto-naming for each
  schema and register each model individually.<br>
  For each schema file, it will create a Schema object and use it when initiating the schema model.
  @function
  @private
  @memberof crux.Database.Mongo