AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

Aggregation Pipeline

集計パイプラインは、ドキュメントを処理する 1 つ以上の ステージ で構成されます。これらのドキュメントは、コレクション、ビュー、または特別に設計された ステージから取得されます。

各ステージは、入力ドキュメントに対して操作を実行します。例、 ステージでは $filter ドキュメント、$group ドキュメント、および 値の計算が可能です。ステージが出力するドキュメントは、パイプラインの次のステージに渡されます。

集計パイプラインは、ドキュメントのグループの結果を返す場合があります。「 集計パイプラインによる更新 」に示されているステージを使用して、集計パイプラインでドキュメントを更新することもできます。

注意

aggregation pipelinedb.collection.aggregate()collectionメソッドで実行される は、パイプラインに$merge または$out ステージが含まれていない限り、 内のドキュメントを変更しません。

MongoDB Atlas でホストされている配置の UI で集計パイプラインを実行できます。

MongoDB Atlas UI で MongoDB Atlas 配置に対して集計パイプラインを実行すると、各ステージで結果をプレビューできます。

「完全な集計パイプラインチュートリアル」セクションには、一般的な集計タスクのステップバイステップチュートリアルが含まれています。チュートリアルには、MongoDB Shell と各公式MongoDBドライバーの例が含まれています。

集計パイプラインを実行するには、以下を使用します。

aggregation pipeline 、ドキュメントを処理する 1 つ以上のステージで構成されます。

  • ステージでは、入力ドキュメントごとに 1 つのドキュメントを出力する必要はありません。一部のステージでは、新しいドキュメントを作成したり、ドキュメントをフィルターで除外したりする場合があります。

  • $out$merge$geoNear を除き、同じステージがパイプラインに複数回表示される可能性があります。

すべての集計ステージについては、「集計ステージ」を参照してください。

集計パイプラインでは、式は ステージがパイプライン内の各入力ドキュメントを処理する方法を定義します。例、式は、含めるドキュメント、フィールドの再作成方法、または新しい値の計算方法を定義できます。

一部の集計パイプライン ステージはを受け入れます。 演算子は入力式に基づいて値を計算します。

MongoDB クエリ言語では、次のコンポーネントから式を構築できます。

コンポーネント

定数

3

演算子

フィールドパス式

"$<path.to.field>"

例、{ $add: [ 3, "$inventory.total" ] } は、$add 演算子と 2 つのオペランドで構成される式です。

式は、入力ドキュメントのパスinventory.totalの値に3を追加した結果を返します。

注意

$map、$filter、$reduce での配列要素インデックスへのアクセス

MongoDB 8.3 では、$map$filter、および$reduce 集計式の配列要素インデックスへのアクセスが改善されます。新しい arrayIndexAsフィールドを使用して、配列要素のインデックスを保存するための変数を設定できます。また、arrayIndexAs を省略した場合は、新しい $$IDX 集計システム変数を使用して現在の配列要素のインデックスにアクセスできます。

フィールドパス式は、入力ドキュメント内のフィールドにアクセスします。フィールド名の前にドル記号 $ を付けます。例えば、"$user"user フィールドを参照し、"$user.name" は埋め込み user.name フィールドを参照します。

その他の例については、「フィールドパス」を参照してください。

集計パイプラインでドキュメントを更新するには、以下を使用します。

値の型と結果のサイズの制限については、「集計パイプラインの制限」を参照してください。

集計パイプラインは、シャーディングされたコレクションに対する操作をサポートします。詳細については、集計パイプラインとシャーディングされたコレクション を参照してください。

重要

map-reduce の代替としての集計パイプライン

MongoDB5.0 以降、 map-reduce は非推奨です。

map-reduce を集計パイプラインに置き換える例については、以下を参照してください。

集計パイプラインの詳細については、以下を参照してください。