$setUnion (Set Union)

Last updated: 2026-10-09

$setUnion (Set Union)

$setUnion merges all input arrays and deduplicates the elements, returning the union. Typical uses: combining tags from multiple sources or aggregating lead IDs gathered through different channels. It accepts two or more arrays, and null elements are ignored. The result has no guaranteed order, and duplicates collapse to one. Unlike $concatArrays, which keeps duplicates and preserves concatenation order, $setUnion follows set semantics and deduplicates.

CategorySet, Condition & Conversion
MongoDB Version1.0+
Example Languagemongosh (Shell)

📝 Syntax

{ $setUnion: [ <array1>, <array2>, ... ] }

⚙️ Parameters

arrayAt least two arrays whose union is returned.

Returns:A deduplicated merge of all input elements

▶ Example

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

// $setUnion: merge two tag sets
db.products.aggregate([
  { $project: {
      allTags: { $setUnion: ['$tags', '$extraTags'] }
  } }
])

Output:

{ '_id': 1, 'allTags': [ 'a', 'b', 'c', 'd' ] }

📌 Notes

More hands-on cases coming soon.

📚 Related Tutorials

❓ FAQ

QHow does it differ from $concatArrays?
A$setUnion deduplicates without ordering; $concatArrays keeps duplicates in order.
QHow many arrays are supported?
ATwo or more.
QIs the result deduplicated?
AYes — under set semantics each element appears once.
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%

🙏 帮我们做得更好

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

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