Mongoose不断为不再存在的旧字段创建索引

时间:2017-10-13 16:38:35

标签: mongodb mongoose mongoose-schema mongoose-plugins

所以我有一个带有usernamepassword字段的模型用户。后来我改为使用电子邮件而不是用户名。对另一个模型进行了类似的更改 - 我将username重命名为name。这两个字段都使用mongoose-unique-validator的唯一验证。现在,每当我启动服务器时,mongoose都会为所有字段(旧的和新的)创建索引。模式中不存在第一个和最后一个:

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 个答案:

答案 0 :(得分:0)

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