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

如何获取MongoDB集合中使用频次最高的产品分类?

MongoDB 获取频次最高的产品分类解决方案

需求说明

统计集合中各产品分类的出现频次,返回频次最高的分类及其计数,输出格式需适配前端展示:

[
    {
        "category": "分类名",
        "total": 数量
    }
]

聚合查询代码

使用MongoDB聚合管道实现需求,执行以下命令(将collection替换为你的集合名称):

db.collection.aggregate([
  // 展开products数组,将每个产品转为独立文档
  { $unwind: "$products" },
  // 按产品分类分组,统计每个分类的出现次数
  {
    $group: {
      _id: "$products.productId.category",
      total: { $sum: 1 }
    }
  },
  // 按统计次数降序排序,频次最高的排在首位
  { $sort: { total: -1 } },
  // 仅保留频次最高的一条结果
  { $limit: 1 },
  // 调整输出字段格式,匹配需求
  {
    $project: {
      _id: 0,
      category: "$_id",
      total: 1
    }
  }
])

各阶段说明

  • $unwind:拆分文档中的products数组,让每个产品成为单独的文档,为后续分组统计做准备。
  • $group:以productId.category作为分组键,通过$sum:1累计每个分类的出现次数。
  • $sort:按统计得到的total字段降序排列,确保频次最高的分类处于结果集的第一位。
  • $limit:只保留排序后的第一条数据,即频次最高的分类。
  • $project:重新构造输出结构,移除默认的_id字段,将分组键_id重命名为category,保留total字段,完全匹配期望的输出格式。

执行结果

针对提供的示例数据,执行上述查询后将返回:

[
    {
        "category": "CEIS",
        "total": 2
    }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:01:19