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

如何在MongoDB聚合管道的group阶段使用正则合并关键词统计?

解决MongoDB聚合中大小写关键词合并统计的问题

你可以通过在聚合分组阶段将关键词统一转换为小写(或大写),实现大小写不同的相同关键词合并统计。修改后的聚合管道如下:

pipeline = [
    {'$unwind': '$main_keywords'},
    # 将关键词转为小写后作为分组依据,合并大小写不同的条目
    {'$group': {'_id': {'$toLower': '$main_keywords'}, 'count': {'$sum': 1}}},
    {'$sort': {'count': -1}},
    # 可选:如果希望输出的关键词为首字母大写格式,添加此阶段
    {
        '$project': {
            '_id': 0,
            'keyword': {
                '$concat': [
                    {'$toUpper': {'$substrCP': ['$_id', 0, 1]}},
                    {'$substrCP': ['$_id', 1, -1]}
                ]
            },
            'count': 1
        }
    }
]
streamdata = db.objects.aggregate(pipeline)

代码说明:

  1. $unwind:和原逻辑一致,将main_keywords数组拆分为单独的文档条目。
  2. $group:使用$toLower操作符将每个关键词转换为小写,以此作为分组的_id,这样Corona和corona都会被转换为corona,实现合并统计。
  3. 可选$project:如果需要将输出的关键词恢复为首字母大写的格式(比如显示为Corona而不是corona),可以通过$substrCP截取首字母并转为大写,再拼接剩余小写部分,同时重命名字段为更直观的keyword。

执行上述管道后,你会得到合并后的统计结果,比如Corona和corona的总数会合并为一条,计数为98+91=189。

内容的提问来源于stack exchange,提问作者Mert Öztürk

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:06:32