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

MongoDB聚合如何提取内嵌数组值直接返回根层级单一数组

调整后的聚合管道

你只需要在原有管道的基础上新增2个阶段即可,不需要额外的JS处理:

ActiveFixture.aggregate([
  {$match:{fixture:{$in:fixtureIds}}},
  {$project:{"predictions":1, _id:0}},
  {$unwind:"$predictions"},
  {$group:{_id:null, "Predictions":{"$push":"$predictions"}}},
  // 新增以下两个阶段
  {$unwind: "$Predictions"},
  {$replaceWith: "$Predictions"}
]).exec()

补充说明

  • 把$group的_id设为null即可,不需要额外指定固定字符串,功能完全一致
  • 新增的第一个$unwind阶段:将分组后合并完成的Predictions数组拆分为多条单值文档
  • 新增的$replaceWith阶段:直接将文档根替换为Predictions字段的取值,最终聚合返回的结果就是你需要的纯字符串数组
  • 如果需要对结果去重,只需要把$group阶段的$push改为$addToSet即可
  • 如果你的MongoDB版本低于4.2不支持$replaceWith,可以用等价的$replaceRoot写法替换最后一个阶段:
    {$replaceRoot: { newRoot: "$Predictions" }}
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:48:03