$setUnion (和集合)

最終更新:2026-10-09

$setUnion (和集合)

$setUnion は、複数の配列の和集合を重複除去して返します。要素の順序は保証されません。集合演算として $project や $addFields でよく使われ、MongoDB 8.1 以降は $group のアキュムレータとしても機能します。$concatArrays と違い、重複を除去します。タグや権限リストのマージに向きます。

カテゴリアキュムレータ
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

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

戻り値:すべての入力配列の和集合(重複排除、順序なし)

▶ 例

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

// $setUnion: タグ配列をマージして重複を除去
db.products.aggregate([
  { $project: { allTags: { $setUnion: ['$tags', ['hot']] } } }
])

出力:

// 既存のタグは重複しない

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q$setUnion と $concatArrays の違いは?
A$setUnion は重複を除去し順序を保証しません。$concatArrays は順序どおり全要素を保持します。
Q入力は配列である必要がありますか?
Aはい。全入力が配列でないとエラーになります。
Q$group のアキュムレータにできますか?
AMongoDB 8.1 以降はできます。グループ全体の集合フィールドを和集合にします。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%