javascript – E11000重复键错误索引:创建唯一索引时
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – E11000重复键错误索引:创建唯一索引时,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1716字,纯文字阅读大概需要3分钟。
内容图文
![javascript – E11000重复键错误索引:创建唯一索引时](/upload/InfoBanner/zyjiaocheng/787/af28552508b74fbcb007cfa3608ed3fc.jpg)
我在robomongo中运行下面的查询.机器人它给出了如下所示的错误?我真的试图使用此查询删除url字段中的duplcate enties.我的查询有问题吗?
db.dummy_data.createIndex({"url":1},{unique:true},{dropDups:true})
我的错误是
E11000重复键错误索引:mydb.dummy_data.$url_1 dup key:{“some url”}
解决方法:
因此,当您的语法从错误的用法更正为:
db.dummy_data.ensureIndex({ "url": 1},{ "unique": true, "dropDups": true })
您报告仍然收到错误消息,但是新消息:
{ “connectionId” : 336, “err” : “too may dups on index build with dropDups=true”, “code” : 10092, “n” : 0, “ok” : 1 }
有这个message on google groups导致建议的方法:
Hi Daniel,
The assertion indicates that the number of duplicates met or exceeded 1000000. In addition, there’s a comment in the source that says, “we could queue these on disk, but normally there are very few dups, so instead we keep in ram and have a limit.” (where the limit == 1000000), so it might be best to start with an empty collection, ensureIndex with {dropDups: true}, and reimport the actual documents.
Let us know if that works better for you.
因此,建议创建一个新的集合并导入其中的所有内容.基本前提:
db.newdata.ensureIndex({ "url": 1},{ "unique": true, "dropDups": true });
db.dummy_data.find().forEach(function(doc) {
db.newdata.insert(doc);
});
或者更好的是:
db.newdata.ensureIndex({ "url": 1},{ "unique": true, "dropDups": true });
var bulk = db.newdata.initializeUnOrderedBulkOp();
var counter = 0;
db.dummy_data.find().forEach(function(doc) {
counter++;
bulk.insert( doc );
if ( counter % 1000 == 0 ) {
bulk.execute();
bulk = db.newdata.initializeUnOrderedBulkOp();
}
});
if ( counter % 1000 != 0 )
bulk.execute();
但是,当您从一个集合迁移到另一个集合时,在唯一键上具有大量重复项,这似乎是目前处理它的唯一方法.
内容总结
以上是互联网集市为您收集整理的javascript – E11000重复键错误索引:创建唯一索引时全部内容,希望文章能够帮你解决javascript – E11000重复键错误索引:创建唯一索引时所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。