HoHsi
@HoHsi

Как задать unique параметр в MongooseJS?

Добрый день!
Делаю авторизацию на сайте, и по неопытности наклепал такую схему:
schema = new Schema({
  local: {
    /* Имя пользователя */
    username: {
      type: String,
      required: true,
      unique: true, /* <- не проверяется на уникальность */
      index: true,
      trim: true,
      validate: validators.username
    },

    /* Имя пользователя в нижнем регистре*/
    usernameLow: {
      type: String,
      unique: true, /* <- не проверяется на уникальность */
      trim: true
    },

    /* Пароль */
    hashedPassword: {
      type: String
    },
    salt: {
      type: String
    }
  },
  vk: {
    user_id: {
      type: String
    },
    access_token: {
      type: String
    },
    expires_in: {
      type: Number
    }
  },
  general: {
    email: {
      type: String,
      required: false,
      unique: true,
      index: true,
      trim: true,
      validate: validators.email
    },
    role: {
      type: String,
      "default": "user"
    },
    created: {
      type: Date,
      "default": Date.now
    }
  }
});


Почему поля объекта не проверяются на уникальность?

P.S. стоит ли использовать passportjs (пока я на него смотрю с недоверием, так как он плотно навязывает свою модель роутинга)?
  • Вопрос задан
  • 470 просмотров
Пригласить эксперта
Ответы на вопрос 1
pomeo
@pomeo
Есть вероятность, что идущий следом index: true переопределяет верхний unique: true. https://docs.mongodb.org/manual/core/index-unique/...
Вам надо удалить index: true, удалить из коллекции индексы, mongoose их не поправит сам. И попробовать снова.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы