$out(输出集合)

最后更新:2026-10-09

$out(输出集合)

$out 把管道结果写入指定集合,替换该集合原有全部内容,目标不存在则自动创建。它必须是管道最后一个阶段,且不能与 $merge 混用。写入过程持有集合级锁,全量替换成本较高,常用于离线报表、缓存表。$out 不能跨库,但 MongoDB 4.4 起可写入其他数据库。

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

📝 语法

{ $out: "<集合名>" }

⚙️ 参数

目标集合写入的集合名。

返回值:不向后续阶段输出(结果写入目标集合)

▶ 示例

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

// $out:把 2024 年订单导出到新集合
db.orders.aggregate([
  { $match: { year: 2024 } },
  { $out: 'orders_2024' }
])

运行结果:

// orders_2024 集合被整体替换

📌 注意事项

更多实战案例即将上线,敬请期待。

📚 相关教程

❓ 常见问题

Q$out 会覆盖已有集合吗?
A会,整个集合内容被替换;写失败时保持原集合。
Q$out 和 $merge 怎么选?
A要全量替换用 $out;要增量更新、按键合并用 $merge。
Q$out 能写到其他数据库吗?
AMongoDB 4.4 起支持,写成 '其他库名.集合名' 的形式。
Web-Tutorial.com

Web-Tutorial 技术团队

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

100%

🙏 帮我们做得更好

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

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