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

Map-Reduce

注意

代替手段としての集計パイプライン

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

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

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

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

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

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

map-reduce は、大量のデータを集約結果に凝縮するためのデータ プロセシング パラダイムです。map-reduce 操作を実行するため、MongoDB はmapReduceデータベースコマンドを提供しています。

次の map-reduce 操作について考えてみます。

注釈付きの map-reduce 操作の図。

MongoDB は、各入力ドキュメント(クエリ条件にマッチするコレクション内のドキュメント)に map フェーズを適用します。map 関数はキーと値のペアを出力します。複数の値を持つキーに対して、MongoDB はデータを収集して圧縮する reduce フェーズを適用し、その結果をコレクションに保存します。reduce 関数の出力は、必要に応じて finalize 関数を通して、結果をさらに処理できます。

MongoDB のすべての map-reduce 関数は JavaScript であり、mongod プロセス内で実行されます。map-reduce 操作は単一のコレクションを入力として受け取り、マップ ステージの前に並べ替えと制限を適用できます。mapReduce は結果をドキュメントとして返すことができます。またはコレクションに書き込むこともできます。

注意

map-reduce は、 MongoDB Atlas無料および Flex クラスターではサポートされていません。

map-reduce 操作では、カスタム JavaScript 関数を使用して値をキーにマップします。キーに複数の値がある場合、操作ではそれらを 1 つのオブジェクトに減らします。map 関数は複数のキーと値のペアを出力することも、出力しないこともできます。任意の finalize 関数では、結果にさらに変更を加えることができます。

map-reduce 操作では、結果をコレクションに書き込むか、インラインで返すことができます。結果をコレクションに書き込む場合は、同じ入力コレクションに対して後続の map-reduce 操作を実行して、新しい結果を以前の結果と置換、マージ、または削減することができます。例については、「mapReduce」と「増分型 map-reduce の実行」を参照してください。

結果を インライン で返す場合、結果ドキュメントは BSON ドキュメント サイズの制限(16 メビバイト)内に収まっている必要があります。その他の制限と制約については、mapReduceを参照してください。

MongoDB は、シャーディングされたコレクションのmap-reduce 操作をサポートしています。

ビューでは map-reduce 操作をサポートしていません。