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

MongoDB聚合管道调整:提取data数组作为最终结果

MongoDB聚合管道:提取嵌套data数组作为最终输出

假设你的聚合当前返回结果结构类似这样:

[
  {
    "data": [
      { "key1": "value1" },
      { "key2": "value2" }
    ]
  }
]

要直接将data字段内的数组作为最终输出,去掉外层的文档和数组包裹,只需在现有管道末尾添加以下两步:

步骤1:展开data数组

使用$unwind操作符将data数组中的每个元素拆分为独立的文档:

{ $unwind: "$data" }

执行后输出结构变为:

[
  { "data": { "key1": "value1" } },
  { "data": { "key2": "value2" } }
]

步骤2:将data内容设为文档根

使用$replaceRoot将每个文档的data字段内容替换为文档本身:

{ $replaceRoot: { newRoot: "$data" } }

最终输出就是你需要的纯数组结构:

[
  { "key1": "value1" },
  { "key2": "value2" }
]

完整示例管道

如果你的原始管道是[/* 现有聚合步骤 */],修改后变为:

[
  /* 现有聚合步骤 */,
  { $unwind: "$data" },
  { $replaceRoot: { newRoot: "$data" } }
]

这种方法适用于外层包含单个或多个带data字段的文档场景,会将所有data数组中的元素合并为一个顶层输出数组。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:35:32