Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

Aggregation Pipeline

集計パイプラインは、ドキュメントを処理する 1 つ以上の ステージで構成されます。

  • 各ステージは、入力ドキュメントに対して操作を実行します。 例えば、ステージでは、文書のフィルター処理、文書のグループ化、および値の計算を行うことができます。

  • ステージから出力された文書は、次のステージに渡されます。

  • aggregation pipelineドキュメントのグループの結果を返すことができます。 たとえば、合計値、平均値、最大値、最小値を返します。

aggregation pipeline aggregation pipelineでドキュメントを更新できます。

注意

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を追加した結果を返します。

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

"$<field>" "$$CURRENT.<field>"は と同等であり、CURRENT は、ステージで特に指定されていない限り、現在のオブジェクトのルートにデフォルト設定されるシステム変数です。

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

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

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

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

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

MongoDB 5.0 以降、map-reduce は非推奨になっています。

  • map-reduce の代わりに、集計パイプラインを使用してください。集計パイプラインは、map-reduce よりもパフォーマンスとユーザビリティが優れています。

  • map-reduce 操作は、$group$merge などの集計パイプライン ステージ を使用して書き換えることができます。

  • カスタム機能を必要とする map-reduce 操作には、 $accumulator$functionの集計演算子を使用できます。 これらの演算子を使用して、JavaScript でカスタム集計式を定義できます。

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

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

戻る

集計操作

ルール バッジを取得する

「データ変換の基礎」を無料でマスターしましょう!

詳細

項目一覧