遇事不决,可问春风,春风不语,谨遵本心|

布都御魂

园龄:3年9个月粉丝:2关注:1

python查询MongoDB数据库中重复数据的标题和数量以及删除重复项只保留最新一个

from urllib.parse import quote_plus
import pymongo

connection_string = "mongodb://localhost:27017"
client = pymongo.MongoClient(connection_string)
db = client['spider']
collection = db['analyzed_books']

# 定义聚合管道,找出每个重复组中需要保留的最后一个文档的_id
pipeline = [
    {"$sort": {"_id": -1}},  # 按照_id降序排序,假设_id是自增的,这样最新的文档会在前面
    {"$group": {
        "_id": "$ocr_content",
        "last_doc_id": {"$first": "$_id"}  # 在每个分组中选择第一个文档的_id,即最新的文档的_id
    }},
    {"$match": {"last_doc_id": {"$ne": None}}}  # 筛选出有last_doc_id的分组
]

# 执行聚合查询,获取需要保留的文档的_id列表
results = collection.aggregate(pipeline)
ids_to_keep = [result['last_doc_id'] for result in results]

# 删除不在ids_to_keep中的文档
collection.delete_many({"_id": {"$nin": ids_to_keep}})

print("重复数据已删除,只保留了每个重复组中的最后一个文档。")

 

本文作者:布都御魂

本文链接:https://www.cnblogs.com/wolvies/p/18544184

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   布都御魂  阅读(27)  评论(0编辑  收藏  举报
历史上的今天:
2023-11-13 去除内容中的多余br标签
2023-11-13 取标签列表的最后两位,并去除最后一个逗号,没有标签就用标题
2023-11-13 把列表换成JSON格式,并根据键取值
2023-11-13 去除列表里的空格
   
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起