Mongoose 不断为不再存在的旧字段创建索引
Posted
技术标签:
【中文标题】Mongoose 不断为不再存在的旧字段创建索引【英文标题】:Mongoose keeps creating indexes for old fields that do not exist anymore 【发布时间】:2018-03-25 20:31:54 【问题描述】:所以我有一个具有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
。它会自动创建索引。我需要在选项中指定要用于用户名和密码的字段,而不仅仅是本地策略。而对于第二个模型,它只是被错误地插入了。
【讨论】:
以上是关于Mongoose 不断为不再存在的旧字段创建索引的主要内容,如果未能解决你的问题,请参考以下文章