MongoDB聚合管道中如何展开数组元素为独立文档适配Metabase读取
解决方案
你可以通过新增$unwind聚合阶段拆分数组,再替换根节点实现需求,以下是修改后的完整管道,完全使用MongoDB原生语法,无需额外脚本,可直接对接Metabase使用:
[ {$group: {"_id":"$Marque","doc":{"$push":"$$ROOT"}}}, {$unwind: "$doc"}, {$replaceRoot: { newRoot: "$doc" }} ]
逻辑说明
- 原有
$group阶段保持不变,按品牌字段Marque分组,将同品牌所有原始文档存入doc数组 - 新增的
$unwind阶段会将每条分组后的文档,按doc数组的元素数量拆分为多条独立文档,每条文档仅携带doc数组中的一个对象元素 - 最后
$replaceRoot阶段直接将doc字段对应的对象提升为文档的根节点,即可得到你期望的独立顶层文档输出格式
内容的提问来源于stack exchange,提问作者Maha1329
相关产品推荐
相关产品推荐

