以下是一个示例代码,可以根据data中的name、city和creditCode字段来删除重复数据:

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
collection = db["mycollection"]

# 创建一个唯一索引,确保没有重复数据
collection.create_index([("name", pymongo.ASCENDING), ("city", pymongo.ASCENDING), ("creditCode", pymongo.ASCENDING)], unique=True)

# 删除重复数据
result = collection.aggregate([
    {"$group": {"_id": {"name": "$name", "city": "$city", "creditCode": "$creditCode"}, "dups": {"$push": "$_id"}, "count": {"$sum": 1}}},
    {"$match": {"count": {"$gt": 1}}}
])

for r in result:
    # 保留第一个文档,删除其他文档
    keep_id = r['dups'][0]
    delete_ids = r['dups'][1:]
    collection.delete_many({'_id': {'$in': delete_ids}})

此代码创建了一个唯一索引来确保没有重复数据,然后使用聚合查询来查找重复数据。对于每个重复组,它保留第一个文档,并删除其他文档

pymongo根据dataname、datacity、datacreditCode删除重复数据

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

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