Mongo :: Error :: OperationFailure:E11000重复键错误集合:metalab_development.demands index:sn_1 dup key:{:null}(11000)

时间:2016-04-26 02:45:14

标签: ruby-on-rails mongodb mongoid

为什么我遇到错误'重复密钥'?实际上,我在我的代码中添加了以下行:

index({ sn: 1 }, { unique: true, sparse: true})

然后我输入命令:

rake db:mongoid:create_indexes

出现了错误,让我感到困惑。

1 个答案:

答案 0 :(得分:0)

错误指出您的集合中包含重复键的文档。这是由于您的索引要求它们是该密钥的唯一记录。

如果您不需要唯一记录:从该语句中删除unique:true

如果您确实需要唯一记录:搜索具有重复密钥的文档并更新它们

关于稀疏的注释,这意味着它只会在文档中存在密钥时进行索引,并忽略没有密钥的文档sparse docs

<强>更新

如果我正确阅读错误,则重复的密钥可能为“空”。当您使用稀疏时,如果您unset当前条目为空的字段,那么您的索引应该可以正常工作。