You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PyMongo获取指定条件下name与sourceUrl字段的去重结果?

解决方案

要对name和sourceUrl两个字段的组合去重,不能直接用distinct()方法,该方法仅支持单个字段的去重操作。你需要使用MongoDB的聚合管道实现需求,PyMongo代码如下:

pipeline = [
    # 先过滤符合univ_id条件的文档,减少后续计算量
    {"$match": {"univ_id": "glaacuk"}},
    # 按name和sourceUrl的组合分组,天然实现组合去重
    {"$group": {
        "_id": {
            "name": "$name",
            "sourceUrl": "$sourceUrl"
        }
    }},
    # 调整输出字段格式,和常规find返回的结构保持一致
    {"$project": {
        "name": "$_id.name",
        "sourceUrl": "$_id.sourceUrl",
        "_id": 0
    }}
]

data = list(data_col.aggregate(pipeline))

实现逻辑说明

$group阶段将name和sourceUrl的共同值作为分组唯一键,相同组合的文档只会保留一个分组,从而实现组合去重的效果。最终返回的data就是所有去重后的name + sourceUrl组合列表,无需额外做字段适配处理。

内容的提问来源于stack exchange,提问作者Gibin Mathew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 01:36:02