$unionWith(集合并集)

最后更新:2026-10-09

$unionWith(集合并集)

$unionWith 把管道到当前阶段的累计结果与另一集合(或同一集合)的文档合并输出,可用子管道对目标集合预处理。默认不去重,输出是两个来源的并集。适合合并多集合数据、统一报表。字段结构不同的文档会原样共存。

分类高级与诊断
MongoDB 版本4.4+
示例语言mongosh (Shell)

📝 语法

{ $unionWith: { coll: "<集合名>", pipeline: [ <子管道> ] } }

⚙️ 参数

coll要合并的目标集合名。
pipeline对目标集合预处理的子管道,可省略。

返回值:两个来源合并后的文档流

▶ 示例

请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):

// $unionWith:合并季度成绩并过滤
db.q1.aggregate([
  { $unionWith: { coll: 'q2', pipeline: [{ $match: { active: true } }] } }
])

运行结果:

// q1 的结果加 q2 中 active 的文档

📌 注意事项

📚 相关教程

❓ 常见问题

Q$unionWith 会去重吗?
A不会,输出是两个来源的并集,相同内容可能出现多次。
Q子管道里能排序吗?
A能,子管道可使用除 $out、$merge、$facet 外的普通阶段。
Q能合并同一集合两次吗?
A能,coll 可以指向当前集合,形成自并集。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏