0

所以我有一个带有usernamepassword字段的模型用户。后来我将其更改为使用电子邮件而不是用户名。在另一个模型上进行了类似的更改 - 我重命名usernamename. 这两个字段都使用了来自 的唯一验证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 })

删除数据库没有帮助,更改数据库没有帮助。我真的不明白它可能来自哪里。猫鼬中有某种缓存吗?

4

1 回答 1

0

好的,原因是passport-local-mongoose我使用不正确。它会自动创建索引。我需要在选项中指定要用于用户名和密码的字段,而不仅仅是本地策略。而对于第二个模型,它只是被错误地插入了。

于 2017-10-13T16:46:49.393 回答