In the db.collection.aggregate() and db.aggregate() methods, pipeline stages appear in an array. Documents pass through the stages in sequence. In the Atlas UI, arrange pipeline stages with the aggregation pipeline builder.
db.collection.aggregate() Stages
$out 、 $merge 、 $geoNear 、 $changeStream 、および$changeStreamSplitLargeEventステージを除くすべてのステージは、パイプライン内で複数回使用できます。
注意
構文や例えなど、特定のコマンドの詳細については、「 コマンドの参照ページ 」へのリンクをクリックしてください。
db.collection.aggregate( [ { <stage> }, ... ] )
主要なステージ
集計パイプラインでドキュメントをフィルター、再形成、グループ化、結合するステージ。
ステージ | 説明 |
|---|---|
ドキュメントに新しいフィールドを追加します。 | |
受信ドキュメントを、指定された式とバケット境界に基づいて、バケットと呼ばれるグループに分類します。 | |
指定された式に基づいて、受信したドキュメントをバケットと呼ばれる特定の数のグループに分類します。指定された数のバケットにドキュメントを均等に分散するために、バケット境界が自動的に決定されます。 | |
集計パイプラインのこの段階でのドキュメントの数を返します。
| |
フィールド内の特定の値が欠落しているドキュメントのシーケンス内に新しいドキュメントを作成します。 | |
入力式からリテラル ドキュメントを返します。 | |
同じ入力ドキュメントセット上の単一ステージ内の複数の集計パイプラインを処理します。複数のディメンションまたはファセットにわたるデータを1つの段階で特徴付けることができる多面的な集計を作成できます。 | |
ドキュメント内の | |
コレクションに対して再帰的な検索を実行します。各出力ドキュメントに、そのドキュメントの再帰検索のトラバーサル結果を含む新しい配列フィールドを追加します。 | |
入力ドキュメントを指定された識別子式でグループ化し、アキュムレータ式(指定されている場合)を各グループに適用します。すべての入力ドキュメントを消費し、各グループごとに 1 つのドキュメントを出力します。出力ドキュメントには、ID フィールドと、指定されている場合は累積フィールドのみが含まれます。 | |
変更されていない最初の n 個のドキュメントをパイプラインに渡します。n は指定された制限です。入力ドキュメントごとに、1 件のドキュメント(最初の n 個のドキュメント)または 0 件のドキュメント(最初の n 個のドキュメントの後)を出力します。 | |
同じデータベース内の別のコレクションまたはビューへの左外部結合を実行して 、"join"コレクションまたはビューのドキュメントをフィルタリングして処理します。 | |
ドキュメントストリームをフィルタリングして、一致するドキュメントのみが変更されずに次のパイプラインステージに渡されるようにします。 | |
集約パイプラインの結果ドキュメントをコレクションに書き込みます。ステージは(新しいドキュメントの挿入、ドキュメントのマージ、ドキュメントの置換、既存のドキュメントの保持、操作の失敗、カスタムアップデートパイプラインによるドキュメントの処理)の結果を出力コレクションに組み込むことができます。 | |
集約パイプラインの結果ドキュメントをコレクションに書き込みます。 | |
新しいフィールドを追加したり、既存のフィールドを削除したりして、ストリーム内の各ドキュメントを再構築します。入力ドキュメント 1 件ごとに、1つのドキュメントを出力します。 既存のフィールドを削除するには、 | |
指定された埋め込みドキュメントでドキュメントを置き換えます。この操作により、
| |
指定された埋め込みドキュメントでドキュメントを置き換えます。この操作により、
| |
入力から指定した数のドキュメントをランダムに選択します。 | |
ドキュメントに新しいフィールドを追加します。
| |
ドキュメントをウィンドウにグループ化し、各ウィンドウのドキュメントに 1 つまたは複数のオペレーターを適用します。 バージョン 5.0 の新機能。 | |
最初の n 個のドキュメント( n は指定されたスキップ番号)をスキップし、残りのドキュメントは変更されずにパイプラインに渡されます。入力ドキュメントごとに、1 件のドキュメント(最初の n 個のドキュメント)または 0 件のドキュメント(最初の n 個のドキュメントの後)を出力します。 | |
指定されたソートキーでドキュメント ストリームを並べ替えます。順序のみが変更されます。ドキュメントは変更されません。入力ドキュメント 1 件ごとに、1つのドキュメントを出力します。 | |
指定された式の値に基づいて受信ドキュメントをグループ化し、個別のグループごとにドキュメントの数を計算します。 | |
2 つのコレクションの和集合を実行します。つまり、2 つのコレクションまたはビューからのパイプラインの結果を 1 つの結果セットに結合します。 | |
入力ドキュメントから配列フィールドを分解して、各要素のドキュメントを出力します。各出力ドキュメントは、配列を要素の値で置き換えます。入力ドキュメントごとに n 個のドキュメントを出力します。n は配列要素の数で、空の配列の場合は 0 になる場合もあります。 |
言語拡張
Atlas Searchや変更ストリームなど、専門的な機能で集計言語を拡張するステージ。
ステージ | 説明 |
|---|---|
コレクションの変更ストリームカーソルを返します。このステージは集計パイプラインで 1 回のみ発生し、第 1 ステージとして実行する必要があります。 | |
16 MB を超える大きな変更ストリームイベントを、変更ストリーム カーソルで返される小さなフラグメントに分割します。
| |
ドキュメントをランク付けする入力パイプラインの結果を組み合わせます。 | |
コレクション内のフィールドの全文検索を実行します。 To learn more, see MongoDB Search Aggregation Pipeline Stages. | |
Returns different types of metadata result documents for the MongoDB Search query against an Atlas collection. To learn more, see MongoDB Search Aggregation Pipeline Stages. | |
Performs an ANN or ENN search on a vector in the specified field of an Atlas collection.
バージョン7.0.2の新機能。 |
メタデータソース
コレクション統計、インデックス情報、アクティブな操作など、配置に関するメタデータを返すステージ。
ステージ | 説明 |
|---|---|
コレクションまたはビューに関する統計情報を返します。 | |
MongoDB 配置のアクティブな操作および休止中の操作に関する情報を返します。
| |
コレクションの各インデックスの使用に関する統計を返します。 | |
名前や作成オプションなど、クラスター内のコレクションの情報を取得します。 | |
現在接続されている
| |
すべてのコレクションまたは特定のコレクションのサンプル クエリを一覧表示します。 | |
Returns information about existing MongoDB Search indexes on a specified collection or view. | |
| |
コレクションのプラン キャッシュ情報を返します。 | |
以前に バージョン8.0の新機能。 | |
記録されたクエリの実行時間統計を返します。 警告: | |
シャーディングされたコレクション内のデータの分散に関する情報を返します。
バージョン6.0.3の新機能。 |
パイプラインステージで使用できる式の詳細については、「 式 」を参照してください。
アップデート可能なステージ
集計パイプラインを使用して、次の更新を行います。
コマンド | mongosh メソッド |
|---|---|
更新の場合、パイプラインは次のステージをサポートします。
$addFieldsおよびそのエイリアス$set$replaceRootおよびそのエイリアス$replaceWith