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

MongoDB聚合操作中如何按Info与Date双条件分组?

MongoDB聚合多字段分组实现方法

要实现按Info和Date双字段分组,只需在$group阶段的_id中传入包含多个字段的文档即可,具体调整如下:

修改后的聚合管道代码

.aggregate([
    { "$match" : { "$or": [{"status": "downloading"}, {"status": "calculating"}]}},
    { "$project": {"Id": 1, "Date": 1, "Info": 1}}, // 统一字段名大小写,与数据集匹配
    { "$group" : { 
        "_id" : { "Info": "$Info", "Date": "$Date" }, // 用文档指定多分组字段
        "Id" : { "$addToSet" : "$Id"}
    }},
    { "$project": {
        "_id": 0, 
        "Info": "$_id.Info", // 从分组标识中提取Info字段
        "Date": "$_id.Date", // 从分组标识中提取Date字段
        "Id": 1 
    }}
])

关键修改说明

  • $group阶段:将原单一字段的_id: "$Info"替换为包含Info和Date的组合文档,MongoDB会基于两个字段的共同值完成分组。
  • $project阶段:新增"Date": "$_id.Date"配置,将分组依据中的Date字段提取为结果的顶层字段,同时保留原有的Info和Id处理逻辑。

最终输出结果

执行上述代码后,将得到符合预期的分组结果:

[
  {"Id": ["1","4","5"], "Info": "X", "Date": "10/1"},
  {"Id": ["2", "6"], "Info": "X", "Date": "13/2"},
  {"Id": ["3"], "Info": "Y", "Date": "13/2"}
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:15:40