from pymongo import MongoClient
from hashlib import md5
from bson.json_util import dumps
db = MongoClient()['mydatabase']
db.mycollection.insert_many([{'name': 'same'},
{'name': 'same'},
{'name': 'different'},
{'name': 'same'},
{'name': 'same'}])
record_hashes = set()
for record in db.mycollection.find():
record_id = record.pop('_id')
record_hash = md5(dumps(record).encode("utf-8")).hexdigest()
if record_hash in record_hashes:
db.mycollection.delete_one({'_id': record_id})
else:
record_hashes.add(record_hash)
for record in db.mycollection.find():
print(record)
这是一种比较单个集合中任何类型数据并删除重复数据的通用方法。如果你有一个巨大的数据集,有更好的方法来实现这一点,但这应该是通用的
它以JSON格式获取记录的md5哈希,并将其与以前找到的数据进行比较。任何匹配项和记录都将被删除。删除哪个版本是任意的;如果需要,可以在初始查找中指定排序
小心使用-这会删除数据强>
印刷品:
相关问题 更多 >
编程相关推荐