$out (Output)

Last updated: 2026-10-09

$out (Output)

$out writes pipeline results to a named collection, replacing all of its previous contents; the target is auto-created if missing. It must be the final stage and cannot be combined with $merge. It takes a collection-level lock and fully replaces data, so it suits offline reports and cache tables. $out gained cross-database writes in MongoDB 4.4.

CategoryAdvanced & Diagnostic
MongoDB Version1.0+
Example Languagemongosh (Shell)

📝 Syntax

{ $out: "<collection>" }

⚙️ Parameters

target collectionName of the collection to write into.

Returns:No documents continue; results are written to the target collection

▶ Example

Run the commands below in your local mongosh (requires a running mongod):

// $out: export 2024 orders to a new collection
db.orders.aggregate([
  { $match: { year: 2024 } },
  { $out: 'orders_2024' }
])

Output:

// orders_2024 is fully replaced

📌 Notes

More hands-on cases coming soon.

📚 Related Tutorials

❓ FAQ

QDoes $out overwrite an existing collection?
AYes, the whole collection is replaced; on failure the original is kept.
QShould I use $out or $merge?
AUse $out for full replacement; $merge for incremental updates and key-based merging.
QCan $out write to another database?
ASince MongoDB 4.4, write it as 'otherdb.coll'.
Web-Tutorial.com

Web-Tutorial Tech Team

A team of developers maintaining programming tutorials. Each tutorial is written and reviewed by developers with expertise in that field. We work to keep our content accurate and reliable — if you spot an issue, please let us know.

100%

🙏 帮我们做得更好

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

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