集計ステージ
db.collection.aggregate()
メソッドと db.aggregate()
メソッドでは、パイプラインステージが配列に表示されます。Atlas UI 内で 集計パイプライン ビルダを使用してパイプライン ステージを配置できます。ドキュメントは、ステージを順番に通過します。
互換性
以下の環境でホストされている配置にパイプラインステージを使用できます。
MongoDB Atlas はクラウドでの MongoDB 配置のためのフルマネージド サービスです
MongoDB Enterprise: サブスクリプションベースの自己管理型 MongoDB バージョン
MongoDB Community: ソースが利用可能で、無料で使用できる自己管理型の MongoDB のバージョン
db.collection.aggregate() Stages
$out
、 $merge
、 $geoNear
、 $changeStream
、および$changeStreamSplitLargeEvent
ステージを除くすべてのステージは、パイプライン内で複数回使用できます。
注意
構文や例など、特定の演算子の詳細については、演算子のリファレンスページへのリンクをクリックしてください
db.collection.aggregate( [ { <stage> }, ... ] )
ステージ | 説明 |
---|---|
ドキュメントに新しいフィールドを追加します。 | |
受信ドキュメントを、指定された式とバケット境界に基づいて、バケットと呼ばれるグループに分類します。 | |
指定された式に基づいて、受信したドキュメントをバケットと呼ばれる特定の数のグループに分類します。指定された数のバケットにドキュメントを均等に分散するために、バケット境界が自動的に決定されます。 | |
コレクションの変更ストリームカーソルを返します。このステージは集計パイプラインで 1 回のみ発生し、第 1 ステージとして実行する必要があります。 | |
16 MB を超える大きな変更ストリームイベントを、変更ストリーム カーソルで返される小さなフラグメントに分割します。
| |
コレクションまたはビューに関する統計情報を返します。 | |
集計パイプラインのこの段階でのドキュメントの数を返します。
| |
フィールド内の特定の値が欠落しているドキュメントのシーケンス内に新しいドキュメントを作成します。 | |
入力式からリテラル ドキュメントを返します。 | |
同じ入力ドキュメントセット上の単一ステージ内の複数の集計パイプラインを処理します。複数のディメンションまたはファセットにわたるデータを1つの段階で特徴付けることができる多面的な集計を作成できます。 | |
ドキュメント内の | |
コレクションに対して再帰的な検索を実行します。各出力ドキュメントに、そのドキュメントの再帰検索のトラバーサル結果を含む新しい配列フィールドを追加します。 | |
入力ドキュメントを指定された識別子式でグループ化し、アキュムレータ式(指定されている場合)を各グループに適用します。すべての入力ドキュメントを消費し、各グループごとに 1 つのドキュメントを出力します。出力ドキュメントには、ID フィールドと、指定されている場合は累積フィールドのみが含まれます。 | |
コレクションの各インデックスの使用に関する統計を返します。 | |
変更されていない最初の n 個のドキュメントをパイプラインに渡します。n は指定された制限です。入力ドキュメントごとに、1 件のドキュメント(最初の n 個のドキュメント)または 0 件のドキュメント(最初の n 個のドキュメントの後)を出力します。 | |
すべてのコレクションまたは特定のコレクションのサンプル クエリを一覧表示します。 | |
指定されたコレクションの既存のAtlas Search インデックスに関する情報を返します。 | |
system.sessions コレクションに伝達されるまで十分な長さにわたってアクティブであったすべてのセッションを一覧表示します。 | |
同じデータベース内の別のコレクションへの左外部結合を実行して、"join" コレクションのドキュメントをフィルタリングして処理します。 | |
ドキュメントストリームをフィルタリングして、一致するドキュメントのみが変更されずに次のパイプラインステージに渡されるようにします。 $match 標準の MongoDB クエリを使用します。入力ドキュメントごとに、1 件のドキュメント(一致)または 0 件のドキュメント(一致なし)を出力します。 | |
集約パイプラインの結果ドキュメントをコレクションに書き込みます。ステージは(新しいドキュメントの挿入、ドキュメントのマージ、ドキュメントの置換、既存のドキュメントの保持、操作の失敗、カスタムアップデートパイプラインによるドキュメントの処理)の結果を出力コレクションに組み込むことができます。 $merge ステージを使用するには、パイプラインの最後のステージである必要があります。 | |
集約パイプラインの結果ドキュメントをコレクションに書き込みます。 $out ステージを使用するには、パイプラインの最後のステージである必要があります。 | |
コレクションのプラン キャッシュ情報を返します。 | |
新しいフィールドを追加したり、既存のフィールドを削除したりして、ストリーム内の各ドキュメントを再構築します。入力ドキュメント 1 件ごとに、1つのドキュメントを出力します。 既存のフィールドを削除するには、 | |
記録されたクエリの実行時間統計を返します。 警告: | |
指定された埋め込みドキュメントでドキュメントを置き換えます。この操作により、
| |
指定された埋め込みドキュメントでドキュメントを置き換えます。この操作により、
| |
入力から指定した数のドキュメントをランダムに選択します。 | |
Atlasコレクション内のフィールドの全文検索を実行します。
| |
Atlas コレクションに対する Atlas 検索 クエリの結果として、さまざまなタイプのメタデータ結果ドキュメントを返します。
| |
ドキュメントに新しいフィールドを追加します。
| |
ドキュメントをウィンドウにグループ化し、各ウィンドウのドキュメントに 1 つまたは複数のオペレーターを適用します。 バージョン 5.0 で追加 | |
最初の n 個のドキュメント( n は指定されたスキップ番号)をスキップし、残りのドキュメントは変更されずにパイプラインに渡されます。入力ドキュメントごとに、1 件のドキュメント(最初の n 個のドキュメント)または 0 件のドキュメント(最初の n 個のドキュメントの後)を出力します。 | |
指定されたソートキーでドキュメント ストリームを並べ替えます。順序のみが変更されます。ドキュメントは変更されません。入力ドキュメント 1 件ごとに、1つのドキュメントを出力します。 | |
指定された式の値に基づいて受信ドキュメントをグループ化し、個別のグループごとにドキュメントの数を計算します。 | |
2 つのコレクションの和集合を実行します。つまり、2つのコレクションのパイプライン結果を1つの結果セットに結合します。 | |
入力ドキュメントから配列フィールドを分解して、各要素のドキュメントを出力します。各出力ドキュメントは、配列を要素の値で置き換えます。入力ドキュメントごとに n 個のドキュメントを出力します。n は配列要素の数で、空の配列の場合は 0 になる場合もあります。 | |
Atlas コレクションの指定されたフィールド内のベクトルに対して、ANN または ENN 検索を実行します。
バージョン 7.0.2 の新機能。 |
パイプラインステージで使用する集計式演算子については、「集計演算子」を参照してください。
db.aggregate() ステージ
MongoDB はdb.aggregate()
メソッドも提供しています。
db.aggregate( [ { <stage> }, ... ] )
次のステージでは、db.aggregate()
メソッドではなくdb.collection.aggregate()
メソッドを使用します。
ステージ | 説明 |
---|---|
コレクションの変更ストリームカーソルを返します。このステージは集計パイプラインで 1 回のみ発生し、第 1 ステージとして実行する必要があります。 | |
MongoDB 配置のアクティブな操作および休止中の操作に関する情報を返します。 | |
入力値からリテラル ドキュメントを返します。 | |
アップデート可能なステージ
集約パイプラインは、次の更新に使用できます。
コマンド | mongosh メソッド |
---|---|
更新の場合、パイプラインは以下のステージで構成されます。
$addFields
およびそのエイリアス$set
$replaceRoot
とそのエイリアス$replaceWith
。