2014-02-09 5 views
3

Я пытаюсь получить роль, содержащую массив доступа.массив строки в схеме mongoose

access: [{ 
    type: 'string', 
    match: /^[a-zA-Z]+$/, 
    required: true, 
    notEmpty: true, 
    check: { 
     minLength: 2 
    } 
}] 

я получаю:

node_modules\mongoose\lib\schema\array.js:58 
    this.caster = new caster(null, castOptions); 
       ^
TypeError: string is not a function 

Если я заменяю type: 'string' на type: String он работает. Зачем? Если я пытаюсь добавить индекс в массив, он не работает. (index: true)

Должен ли я сделать collection.index({'access': 1})?

ответ

4

type: String, - это то, что вы хотите в строке 2. Mongoose ожидает, что тип укажет на функцию, которая может использоваться для принуждения значений к правильному типу.

+0

Итак, в основном. Когда я должен использовать 'String' и использовать' 'string''? – Vadorequest

+1

Всегда используйте 'String', never' 'string'' –

+0

Итак, почему в официальных примерах используется '' string''? Плюс, если я пишу 'trim: true' с' String', он не работает, но работает с '' string'' ... – Vadorequest

Смежные вопросы