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

MongoDB聚合查询如何获取总价格最高的电影类型单条结果

解决方案

你现有查询中第二个$group阶段完全冗余,第一个$group已经完成了按电影类型统计总价格的逻辑,第二个$group仅对字段做了重命名,没有产生新的聚合结果。

调整方案非常简单:删掉冗余的第二个$group,新增排序、取第一条的步骤即可,完整代码如下:

Movie.aggregate([
  // 拆分多类型数组
  {
    $unwind: '$genre'
  },
  // 按类型分组统计总价格
  {
    $group: {
      _id: "$genre",
      numOfMovies: {$sum: 1},
      genrePrice: { $sum: '$price' }
    }
  },
  // 按总价格降序排列,最高价格的类型排在首位
  {
    $sort: { genrePrice: -1 }
  },
  // 仅取排序后的第一条结果
  {
    $limit: 1
  },
  // 可选:重命名字段匹配你预期的输出格式
  {
    $project: {
      _id: 1,
      topPricedGenre: '$genrePrice'
    }
  }
])

如果希望更简洁,可以直接在第一个$group阶段就把总价格字段命名为topPricedGenre,省略最后的$project步骤:

Movie.aggregate([
  { $unwind: '$genre' },
  {
    $group: {
      _id: "$genre",
      numOfMovies: {$sum: 1},
      topPricedGenre: { $sum: '$price' }
    }
  },
  { $sort: { topPricedGenre: -1 } },
  { $limit: 1 }
])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:09:00