使用pymongo删除重复数据
可以使用pymongo的delete_many方法和distinct方法来删除重复数据。
首先,使用distinct方法获取需要删除的重复数据的_id值,然后使用delete_many方法删除这些数据。
示例代码如下:
import pymongo
client = pymongo.MongoClient('mongodb://localhost:27017/')
db = client['test_db']
collection = db['test_collection']
# 使用distinct方法获取需要删除的重复数据的_id值
duplicate_ids = collection.distinct('_id', {'$or': [{'field1': {'$exists': True}}, {'field2': {'$exists': True}}]})
# 删除重复数据
result = collection.delete_many({'_id': {'$in': duplicate_ids}})
print(result.deleted_count, 'documents deleted.')
在这个示例中,我们假设需要删除的重复数据是指field1或field2字段值存在的数据。distinct方法接收两个参数:字段名和查询条件。我们使用$or操作符来查询存在field1或field2字段值的文档的_id值。delete_many方法接收一个查询条件作为参数,我们使用$in操作符来删除所有_id值在duplicate_ids列表中的文档。
注意:在执行删除操作前,一定要确认要删除的文档是正确的,以避免误删数据
原文地址: https://www.cveoy.top/t/topic/fg2U 著作权归作者所有。请勿转载和采集!