Overview
このガイドでは、 MongoDB Node.jsドライバーのメソッドを使用して、集計パイプラインとパイプラインステージを作成する方法を学習できます。
Aggregation Pipeline をビルドする
Node.jsドライバーを使用して、パイプライン変数を作成するか、集計ステージを集計メソッドに直接渡すことで、集計パイプラインを構築できます。これらのそれぞれのアプローチの詳細については、次の例を参照してください。
// Defines the aggregation pipeline const pipeline = [ { $match: { ... } }, { $group: { ... } } ]; // Executes the aggregation pipeline const results = await collection.aggregate(pipeline);
// Defines and executes the aggregation pipeline const results = await collection.aggregate([ { $match: { ... } }, { $group: { ... } } ]);
集計ステージ メソッド
次の表は、集計パイプラインのステージを示しています。集計ステージの詳細と、 Node.jsアプリケーションのコード例を確認するには、ステージ名からMongoDB Serverマニュアルの参照ページへのリンクを実行します。
ステージ | 説明 |
---|---|
ドキュメントに新しいフィールドを追加します。入力ドキュメントの既存のフィールドと、新しく追加されたフィールドの両方を含むドキュメントを出力します。
| |
受信ドキュメントを、指定された式とバケット境界に基づいて、バケットと呼ばれるグループに分類します。 | |
指定された式に基づいて、受信したドキュメントをバケットと呼ばれる特定の数のグループに分類します。指定された数のバケットにドキュメントを均等に分散するために、バケット境界が自動的に決定されます。 | |
コレクションの変更ストリームカーソル を返します。パイプラインの最初のステージである必要があります。
| |
16 MB を超える大きな変更ストリームイベントを、変更ストリームカーソルで返される小さなフラグメントに分割します。パイプラインの 最後のステージ である必要があります。
| |
コレクションまたはビューに関する統計情報を返します。 | |
集計パイプラインのこの段階でのドキュメントの数を返します。 | |
トランザクションの一部としてロックを保持しているアクティブな操作と休止中の操作と、非アクティブなセッションに関する情報を含むドキュメントのストリームを返します。 | |
フィールド内の特定の値が欠落しているドキュメントのシーケンス内に新しいドキュメントを作成します。 | |
入力式からリテラル ドキュメントを返します。 | |
同じ入力ドキュメントセット上の単一ステージ内の複数の集計パイプラインを処理します。 複数のディメンションまたはファセットにわたるデータを1つの段階で特徴付けることができる多面的な集計を作成できます。 | |
指定された点に最も近いものから最も遠いものの順にドキュメントを返します。このメソッドは、指定された点からの距離を含むフィールドを出力ドキュメントに追加します。 | |
コレクションに対して再帰的な検索を実行します。このメソッドは、そのドキュメントの再帰検索のトラバーサル結果を含む新しい配列フィールドを各出力ドキュメントに追加します。 | |
入力ドキュメントを指定された式式でグループ化し、アキュムレータ式(指定されている場合)を各グループに適用します。すべての入力ドキュメントを消費し、個別のグループごとに 1 つのドキュメントを出力します。出力ドキュメントには、IDフィールドと、指定されている場合は累積フィールドのみが含まれます。 | |
コレクションの各インデックスの使用に関する統計を返します。 | |
変更されていない最初の n 個のドキュメントをパイプラインに渡します。 n は指定された制限です。入力ドキュメントごとに、1 件のドキュメント(最初の n 個のドキュメント)または 0 件のドキュメント (最初の n 個のドキュメントの後 )を出力します。 | |
すべてのコレクションまたは特定のコレクションのサンプル クエリを一覧表示します。Queryable Encryptionが有効になっているコレクションでのみ使用できます。 | |
指定されたコレクションの既存の Atlas Search インデックスに関する情報を返します。 | |
同じデータベース内の別のコレクションへの左外部結合を実行して、"join" コレクションのドキュメントをフィルタリングして処理します。 | |
ドキュメントストリームをフィルタリングして、一致するドキュメントのみが変更されずに次のパイプラインステージに渡されるようにします。入力ドキュメントごとに、1 件のドキュメント(一致)または 0 件のドキュメント(一致なし)を出力します。 | |
集計パイプラインの結果ドキュメントをコレクションに書き込みます。ステージは(新しいドキュメントの挿入、ドキュメントのマージ、ドキュメントの置換、既存のドキュメントの保持、操作の失敗 、 カスタムアップデートパイプラインによるドキュメントの処理 )の結果を出力コレクションに組み込むことができます。このステージを使用するには、パイプラインの最後のステージ である必要があります。 | |
集計パイプラインの結果ドキュメントをコレクションに書き込みます。このステージを使用するには、パイプラインの最後のステージ である必要があります。 | |
新しいフィールドを追加したり、既存のフィールドを削除したりして、ストリーム内の各ドキュメントを再構築します。入力ドキュメント 1 件ごとに、1つのドキュメントを出力します。 | |
ドキュメント自体に保存されている情報に基づいて各ドキュメントのコンテンツを制限することにより、ストリーム内の各ドキュメントを再構築します。 | |
指定された埋め込みドキュメントでドキュメントを置き換えます。この操作により、
| |
指定された埋め込みドキュメントでドキュメントを置き換えます。この操作により、
| |
入力から指定した数のドキュメントをランダムに選択します。 | |
Atlasコレクション内のフィールドの全文検索を実行します。 このステージはMongoDB Atlasクラスターでのみ使用でき、自己管理型配置では使用できません。詳細については、Atlas ドキュメントの「Atlas Search 集計パイプラインステージ」を参照してください。 | |
Atlas コレクションに対する Atlas 検索 クエリの結果として、さまざまなタイプのメタデータ結果ドキュメントを返します。 このステージはMongoDB Atlasクラスターでのみ使用でき、自己管理型配置では使用できません。詳細については、Atlas ドキュメントの「Atlas Search 集計パイプラインステージ」を参照してください。 | |
ドキュメントに新しいフィールドを追加します。 | |
ドキュメントをウィンドウにグループ化し、各ウィンドウのドキュメントに 1 つまたは複数のオペレーターを適用します。 | |
最初の n 個のドキュメント(n は指定されたスキップ番号)をスキップし、残りのドキュメントは変更されずにパイプラインに渡されます。入力ドキュメントごとに、0 件のドキュメント(最初の n 個のドキュメント)または 1 件のドキュメント(最初の n 個のドキュメントの後)を出力します。 | |
指定されたソートキーでドキュメントストリームを並べ替えます。ドキュメントは変更されないままです。入力ドキュメントごとに、1 つのドキュメントを出力します。 | |
指定された式の値に基づいて受信ドキュメントをグループ化し、個別のグループごとにドキュメントの数を計算します。 | |
2 つのコレクションのパイプライン結果を 1 つの結果セットに結合します。 | |
ドキュメントからフィールドを削除または除外します。
| |
入力ドキュメントから配列フィールドを分解して、各 要素のドキュメントを出力します。各出力ドキュメントは、配列を要素の値で置き換えます。入力ドキュメントごとにn個のドキュメントを出力します。nは配列要素の数です。n は、空の配列の場合に 0 になる可能性があります。 | |
Atlas コレクションの指定されたフィールド内のベクトルに対して、ANN または ENN 検索を実行します。 このステージはMongoDB Atlasクラスターでのみ使用でき、自己管理型配置では使用できません。詳細については、Atlas ベクトル検索 を参照してください。 |
API ドキュメント
集計パイプラインの組み立ての詳細については、 MongoDB Serverマニュアルの 集計パイプライン を参照してください。
パイプライン ステージの作成の詳細については、 マニュアルの「 集計ステージMongoDB Server 」を参照してください。
このページで使用されているメソッドとクラスの詳細については、次のAPIドキュメントを参照してください。