可以使用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.')

在这个示例中,我们假设需要删除的重复数据是指field1field2字段值存在的数据。distinct方法接收两个参数:字段名和查询条件。我们使用$or操作符来查询存在field1field2字段值的文档的_id值。delete_many方法接收一个查询条件作为参数,我们使用$in操作符来删除所有_id值在duplicate_ids列表中的文档。

注意:在执行删除操作前,一定要确认要删除的文档是正确的,以避免误删数据

使用pymongo删除重复数据

原文地址: https://www.cveoy.top/t/topic/fg2U 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录