2015-07-04 2 views
0

я использую метеоритный JS ж/simpleschema и получатьметеор JS simpleschema Индекс с рисунком уже существует с различными вариантами

MongoError: Index with pattern: { username: 1 } already exists with different options

Моя схема вокруг коллекции db.users является

Schema = {}; 

Schema.User = new SimpleSchema({ 
... 
username: { 
    type: String, 
    unique: true, 
    regEx: /^[a-z0-9]{3,32}$/ , 
    max: 32, 
    min: 3 }, 
... 
}); 

Я сбросил индекс в mongodb, но все равно получаю ошибку при перезагрузке своего приложения. Кто-нибудь сталкивался с этим?

+0

Кстати, зачем устанавливать минуты и максимум снова? regEx может быть в порядке .. и, вероятно, вы хотите включить AZ тоже (или сделать его регистрозависимым:/^ [a-z0-9] {3,32} $/i Кроме того .. это хорошая идея пусть имена пользователей начинаются с числа? вы решаете;) – faeb187

ответ

0

Метеор поставляется с некоторыми индексами по умолчанию в коллекциях users. От accounts-base:

/// DEFAULT INDEXES ON USERS 
Meteor.users._ensureIndex('username', {unique: 1, sparse: 1}); 
Meteor.users._ensureIndex('emails.address', {unique: 1, sparse: 1}); 
Meteor.users._ensureIndex('services.resume.loginTokens.hashedToken', 
          {unique: 1, sparse: 1}); 
Meteor.users._ensureIndex('services.resume.loginTokens.token', 
          {unique: 1, sparse: 1}); 
// For taking care of logoutOtherClients calls that crashed before the tokens 
// were deleted. 
Meteor.users._ensureIndex('services.resume.haveLoginTokensToDelete', 
          { sparse: 1 }); 
// For expiring login tokens 
Meteor.users._ensureIndex("services.resume.loginTokens.when", { sparse: 1 }); 

Я не проверял, но я предполагаю, что unique: true может быть частью вашей схемы, которая конфликтует с вышесказанным.

0

Вы можете идеально объединить свою схему с существующей, где индекс и уникальный уже установлены для имени пользователя и электронной почты. поскольку вы только удаляете их, устанавливая их явно на false, они останутся.

+0

, поэтому, если вы просто хотите добавить свой regEx к имени пользователя, вы можете присоединить без параметров для слияния (без индекса или уникального, поскольку они уже определены) ... – faeb187

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