Mongoose продолжает создавать индексы для старых полей, которые больше не существуют
Итак, у меня была модель пользователя с username
а также password
поля. Позже я изменил его, чтобы использовать электронную почту вместо имени пользователя. Аналогичное изменение было сделано на другой модели - я переименовал username
в name
, Оба поля использовали уникальную проверку из mongoose-unique-validator
, Теперь, когда я запускаю сервер, мангуст создает индексы для всех полей, старых и новых. Первая и последняя вещи больше не существуют в схемах:
Mongoose: users.ensureIndex({ username: 1 }, { unique: true, background: true })
Mongoose: people.ensureIndex({ name: 1 }, { unique: true, background: true })
Mongoose: people.ensureIndex({ uri: 1 }, { unique: true, background: true })
Mongoose: people.ensureIndex({ username: 1 }, { unique: true, background: true })
Удаление базы данных не помогло, изменение базы данных не помогло. Я действительно не понимаю, откуда это может исходить. Есть ли какое-то кеширование в мангусте?
1 ответ
Хорошо, причина этого была passport-local-mongoose
что я использовал неправильно. Он создает индексы автоматически. Мне нужно было указать в опциях, а не только в локальной стратегии, какие поля я хочу использовать для имени пользователя и пароля. А для второй модели он был просто по ошибке подключен.