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

MongoDB嵌套分组查询受阻求助:如何按州按年份聚合学期日期数据

你可以使用MongoDB的聚合管道实现嵌套分组需求,具体查询语句如下:

db.collection.aggregate([
  // 按【州+年份】联合分组,归集同分组下的学期和日期范围数据
  {
    $group: {
      _id: {
        state: "$state",
        year: "$year"
      },
      data: {
        $push: {
          term: "$term",
          dateRange: "$dateRange"
        }
      }
    }
  },
  // 调整字段结构,把_id内的属性抽为顶层字段
  {
    $project: {
      _id: 0,
      state: "$_id.state",
      year: "$_id.year",
      data: 1
    }
  },
  // 按州二次分组,归集同州的所有年份数据
  {
    $group: {
      _id: "$state",
      termdates: {
        $push: {
          year: "$year",
          data: "$data"
        }
      }
    }
  },
  // 调整最终输出结构,匹配需求格式
  {
    $project: {
      _id: 0,
      state: "$_id",
      termdates: 1
    }
  }
])

如果需要保证输出的排序规则,可在对应阶段插入$sort:

  • 要让同一年份下的学期按数字升序排列:在第一个$group阶段前添加{ $sort: { term: 1 } }
  • 要让同一州下的年份按时间升序排列:在第二个$group阶段前添加{ $sort: { year: 1 } }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 08:48:02