E11000 MongoDB mongoose中的重复键错误索引

E11000 MongoDB mongoose中的重复键错误索引,第1张

E11000 MongoDB mongoose中的重复键错误索引

错误消息是说已经有一条记录

null
作为电子邮件。换句话说,您已经有一个没有电子邮件地址的用户。

相关文档

如果文档在唯一索引中没有索引字段的值,则索引将为此文档存储一个空值。由于存在独特的约束,MongoDB将只允许一个缺少索引字段的文档。如果有多个文档没有索引字段的值,或者缺少索引字段,则索引构建将失败,并出现重复的键错误。

您可以将唯一性约束与稀疏索引结合使用,以从唯一性索引中过滤这些空值并避免错误。

唯一索引

稀疏索引仅包含具有索引字段的文档条目,即使索引字段包含空值也是如此。

换句话说,对于多个都具有

null
值的文档,稀疏索引是可以的。

稀疏索引


来自评论:

您的错误表明该键已命名

mydb.users.$email_1
,这使我怀疑您在
users.email
和上都有一个索引
users.local.email
(当前该键旧且未使用)。从猫鼬模型中删除字段不会影响数据库。检查
mydb.users.getIndexes()
是否存在这种情况,并使用手动删除不需要的索引
mydb.users.dropIndex(<name>)



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4936066.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-13

发表评论

登录后才能评论

评论列表(0条)

保存