数据库中的一个字段已经存在相同的值,想给这个字段建立一个唯一索引,并删除多余的数据,于是建立索引时设置了dropDups 为true,但还是报错重复key,是怎么回事呀?或者有什么方法能快速删除多余的数据呢?
业精于勤,荒于嬉;行成于思,毁于随。
可以通过python脚本删除重复
from pymongo import MongoClient client = MongoClient() db = client.dbname documentname = db.documentname keys = {} for k in documentname.find(): key = k['field'] if keys.has_key(key): print 'duplicate key %s' % key documentname.remove({'_id':k['_id']}) else: print 'first record key %s' % key keys[key]=1
思路很简单,遍历并用dict存储,第二次遇到时删除。 但这样无法控制删除与保留的对象,具体可以根据你的场景调整脚本
我也遇到这个情况了,不知道怎么解决,能指点一下吗
当数据有10W条以上的时候,通过脚本可以很快的处理吗?还有多并发的时候,脚本是如何处理的?
mongoDB3.0废弃dropDups参数,以后不能通过这个删除重复数据了。
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4865696&uid=15795819
可以通过python脚本删除重复
思路很简单,遍历并用dict存储,第二次遇到时删除。
但这样无法控制删除与保留的对象,具体可以根据你的场景调整脚本
我也遇到这个情况了,不知道怎么解决,能指点一下吗
当数据有10W条以上的时候,通过脚本可以很快的处理吗?还有多并发的时候,脚本是如何处理的?
mongoDB3.0废弃dropDups参数,以后不能通过这个删除重复数据了。
http://blog.chinaunix.net/xmlrpc.php?r=blog/article&id=4865696&uid=15795819