参考: http://blog.csdn.net/cloume/article/details/74931998
1. Python代码除去重复记录:(测试通过)
import pymongo
# MONGODB 主机环回地址127.0.0.1
host = '127.0.0.1'
# 端口号,默认是27017
port = 27017
# 设置数据库名称
dbname = 'Data'
# 存放本次数据的表名称
collection_name = 'Collection'
# 'content'列中若有重复,除去
client = pymongo.MongoClient(host = host, port = port)
mdb = client[dbname]
collection_patent = mdb[collection_name]
patents = {}
count = 0
sum = 1;
for patent_record in collection_patent.find():
print(sum)
sum+=1
if patent_record['content'] not in patents.keys():
patents[patent_record['content']] = patent_record
else:
count += 1
collection_patent.delete_one({"content":patent_record['content']})
print(count)
2.使用ensureIndex
建立索引来删除重复记录,此命令适用于Mongodb 3.0
以下版本。在Mongodb3.0
以上版本,ensureIndex
已经被createIndex
取代了,同时dropDups
选项也已经被移除了,所以不能再使用以上命令来去掉重复数据:
- 1
3.下面提供一种比较简单的巧方法:
- 将数据导出为JSON格式存档:
mongoexport.exe -d database_name -c collection_name -o filename.json
- 清空当前集合的数据:
db.yourcollection.remove({})
- 新建唯一索引:
db.yourcollection.createIndex({public_no:1}, {unique:true})
- 导入之前存档的JSON文件数据:
mongoimport -d database_name -c collection_name --upsert filename.json
用到的几个参数选项说明:-d 数据库名
-c 集合名
-o 导出后的目录及文件名
--upsert 会根据唯一索引去掉重复记录