$setUnion (集合の和)

最終更新:2026-10-09

$setUnion (集合の和)

$setUnion はすべての入力配列を統合し、要素の重複を除去して和集合を返します。代表的な用途は、複数ソースのタグの統合や、異なるチャネルで集めたリード ID の集約です。2 つ以上の配列を受け付け、null 要素は無視されます。結果の順序は保証されず、重複は 1 つにまとまります。重複を保持して連結順を維持する $concatArrays とは異なり、$setUnion は集合の意味論に従って重複を除去します。

カテゴリ集合・条件・変換
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

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

⚙️ パラメータ

配列和集合を返す少なくとも2つの配列。

戻り値:すべての入力要素を重複排除してマージした配列

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $setUnion: 2 つのタグ集合を統合
db.products.aggregate([
  { $project: {
      allTags: { $setUnion: ['$tags', '$extraTags'] }
  } }
])

出力:

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

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q$concatArrays との違いは?
A$setUnion は順序を保たず重複を除去します。$concatArrays は順序どおりに重複を保持します。
Qいくつの配列に対応していますか?
A2 つ以上です。
Q結果は重複が除去されますか?
Aはい — 集合の意味論により各要素は 1 回だけ現れます。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%