$setIntersection (集合の共通部分)

最終更新:2026-10-09

$setIntersection (集合の共通部分)

$setIntersection は、すべての入力配列に含まれる要素を、重複を除去して返します。代表的な用途は、ユーザーと友人の共通の興味タグや、複数のフィルタ条件に該当する共通商品の特定です。2 つ以上の配列を受け付け、null 要素は無視されます。結果は集合の意味論に従い、順序は保証されません。$setUnion(和)や $setDifference(差)とともに集合演算子の一族を構成します。

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

📝 構文

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

⚙️ パラメータ

配列共通要素を返す少なくとも2つの配列。

戻り値:すべての入力配列に含まれる要素の重複排除された配列

▶ 例

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

// $setIntersection: 共通の興味タグ
db.users.aggregate([
  { $project: {
      common: { $setIntersection: ['$myTags', '$friendTags'] }
  } }
])

出力:

{ '_id': 1, 'common': [ 'mongo', 'db' ] }

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q結果は重複が除去されますか?
Aはい — 共通部分は集合の意味論で重複が除去されます。
Q複数の配列に対応していますか?
Aはい — すべての配列に含まれる要素だけが結果に現れます。
Q結果の順序は保証されますか?
Aいいえ — 順序に依存しないでください。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%