PyMongo: 删除集合中重复数据(根据name、city、creditCode)
假设有一个名为'collection'的集合,可以使用以下代码删除重复数据:
from pymongo import MongoClient
client = MongoClient()
db = client['database_name']
collection = db['collection_name']
# 删除重复数据
collection.aggregate([
{"\$group": {"_id": {"name": "\$data.name", "city": "\$data.city", "creditCode": "\$data.creditCode"}, "dups": {"\$push": "\$_id"}, "count": {"\$sum": 1}}},
{"\$match": {"count": {"\$gt": 1}}},
{"\$sort": {"count": -1}},
{"\$limit": 100},
{"\$unwind": "\$dups"},
{"\$project": {"_id": "\$dups"}}
]).forEach(lambda doc: collection.delete_one({"_id": doc["_id"]}))
这个代码使用了MongoDB的聚合管道,首先将数据按照'data.name'、'data.city'、'data.creditCode'分组,然后找到重复的数据,最后删除重复数据。请注意,这个代码中的'data'是一个嵌套字段,你需要根据实际情况修改这个字段。
原文地址: https://www.cveoy.top/t/topic/ovvm 著作权归作者所有。请勿转载和采集!