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

MongoDB聚合查询:提取推文Hashtag并单独分组统计

解决MongoDB中单个Hashtag分组统计的问题

问题原因

当前聚合逻辑未对$regexFindAll返回的Hashtag数组进行拆分,直接以整个数组作为分组键,导致统计的是“包含特定Hashtag组合的推文数”,而非单个Hashtag的出现频次。

修改后的聚合代码

data = db.tweets.aggregate([
    {
        "$project": {
            "hashtags": {
                "$regexFindAll": {
                    "input": "$content",
                    "regex": r'#[\w-]+'
                }
            }
        }
    },
    { "$unwind": "$hashtags" },
    {
        "$group": {
            "_id": "$hashtags.match",
            "count": { "$sum": 1 }
        }
    },
    { "$sort": { "count": -1 } }
])

关键步骤说明

  • $project阶段:通过$regexFindAll提取所有Hashtag,正则#[\w-]+支持匹配带连字符的完整Hashtag(如#Corona-Pandemie);将结果存入hashtags字段,结构为包含match键的对象数组。
  • $unwind阶段:将每个文档的Hashtag数组拆分为独立文档,每个文档仅保留一个Hashtag对象,这是实现单个Hashtag统计的核心操作。
  • $group阶段:以$hashtags.match(单个Hashtag内容)作为分组依据,累计每个Hashtag的出现次数。
  • $sort阶段:可选操作,按统计次数降序排列,便于快速定位高频Hashtag。

预期输出

针对提供的样例数据,运行后会得到如下结果:

{'_id': '#Corona', 'count': 3},
{'_id': '#Krisenjahr', 'count': 1},
{'_id': '#Legalisierung', 'count': 1},
{'_id': '#Cannabis', 'count': 1},
{'_id': '#München', 'count': 1}

内容的提问来源于stack exchange,提问作者Hadi Monzer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:45:46