$unionWith (和集合)

最終更新:2026-10-09

$unionWith (和集合)

$unionWith は、パイプラインがこれまでに累積した結果と別のコレクション(同じコレクションでも可)のドキュメントを結合し、必要ならサブパイプラインでそのコレクションを前処理します。デフォルトの出力は重複排除なしの和集合です。複数のコレクションを 1 つのレポートストリームにまとめるのに適しており、形の異なるドキュメントが共存しても問題ありません。

カテゴリ高度と診断
MongoDB バージョン4.4+
例の言語mongosh(シェル)

📝 構文

{ $unionWith: { coll: "<collection>", pipeline: [ <sub-pipeline> ] } }

⚙️ パラメータ

coll和集合を取る対象コレクション。
pipeline対象コレクションを前処理する任意のサブパイプライン。

戻り値:両方のソースをマージしたドキュメントストリーム

▶ 例

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

// $unionWith: q2 をフィルター付きで q1 に結合
db.q1.aggregate([
  { $unionWith: { coll: 'q2', pipeline: [{ $match: { active: true } }] } }
])

出力:

// q1 の結果に加えて、active な q2 のドキュメントが加わる

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Q$unionWith は重複を排除しますか?
Aいいえ。両方のソースを結合するだけで、重複が出ることがあります。
Qサブパイプラインでソートできますか?
Aはい。$out、$merge、$facet 以外の通常ステージを使えます。
Q同じコレクションを 2 回結合できますか?
Aはい。coll に現在のコレクションを指定すれば自己結合になります。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%