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 を集計パイプラインに置き換える例については、以下を参照してください。

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

戻る

集計操作

ルール バッジを取得する

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

詳細

項目一覧