创建记录时出现重复键错误
Posted
技术标签:
【中文标题】创建记录时出现重复键错误【英文标题】:Duplicate key error when creating record 【发布时间】:2016-07-13 04:51:30 【问题描述】:这个错误真的很令人困惑。我可以创建一次记录,但无论如何第二次都会出现错误:
E11000 duplicate key error index: test_db.students.$code_1 dup key: : null
这是我的架构:
var Schema =
"stuCode" : String,
"firstName" : Boolean,
"lastName" : Boolean,
"email" : String
;
在我拥有 stuCode
和 code
和 _code
之前,它必须是独一无二的。这可能会导致问题。
我尝试从该集合中删除所有数据,删除mongoose.connection.on('open', function() );
中的集合,但问题仍然存在。我只能保存第一条记录,第二条无法保存。
这个问题的解决方案是什么?
【问题讨论】:
第二个文档的stuCode
和第一个文档一样吗?
@zangw - 你的意思是...... .一个重复的键? )
@MartinJames,是的,我的意思是重复的stuCode
...
@zangw,第二个stuCode
和第一个不一样。它是随机生成的,我已经在控制台中打印出来仔细检查。
可能建议您从stuCode
中删除唯一索引,然后再次插入这两个文档?
【参考方案1】:
在我将 stuCode 作为代码和 _code 之前,它被要求是唯一的。 这可能会导致问题。
是的,code
上的旧索引可能仍然存在,你不能删除它吗?
【讨论】:
谢谢。有用。对于将要寻找此问题的其他人来说,只需一张便条。这是删除索引的方法:Student.collection.dropAllIndexes(function (err, results) ... );
以上是关于创建记录时出现重复键错误的主要内容,如果未能解决你的问题,请参考以下文章