错误消息是说已经有一条记录
null作为电子邮件。换句话说,您已经有一个没有电子邮件地址的用户。
相关文档:
如果文档在唯一索引中没有索引字段的值,则索引将为此文档存储一个空值。由于存在独特的约束,MongoDB将只允许一个缺少索引字段的文档。如果有多个文档没有索引字段的值,或者缺少索引字段,则索引构建将失败,并出现重复的键错误。
您可以将唯一性约束与稀疏索引结合使用,以从唯一性索引中过滤这些空值并避免错误。
唯一索引
稀疏索引仅包含具有索引字段的文档条目,即使索引字段包含空值也是如此。
换句话说,对于多个都具有
null值的文档,稀疏索引是可以的。
稀疏索引
来自评论:
您的错误表明该键已命名
mydb.users.$email_1,这使我怀疑您在
users.email和上都有一个索引
users.local.email(当前该键旧且未使用)。从猫鼬模型中删除字段不会影响数据库。检查
mydb.users.getIndexes()是否存在这种情况,并使用手动删除不需要的索引
mydb.users.dropIndex(<name>)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)