集計コマンドの比較
項目一覧
注意
map-reduce の代替としての集計パイプライン
MongoDB 5.0以降、 map-reduceは非推奨です。
map-reduceの代わりに、集計パイプラインを使用する必要があります。 集計パイプラインは、map-reduce よりもパフォーマンスとユーザビリティが優れています。
$group
$merge
などの集約パイプライン ステージ を使用して、map-reduce操作を書き換えることができます。カスタム機能を必要とする map-reduce 操作には、
$accumulator
と$function
の集計演算子を使用できます。 これらの演算子を使用して、JavaScript でカスタム集計式を定義できます。
map-reduce を集計パイプラインに置き換える例については、以下を参照してください。
集計コマンドの比較テーブル
次の表は、MongoDB 集計コマンドの機能の簡単な概要です。
説明 | 集計タスクのパフォーマンスとユーザビリティを向上させるという具体的な目的で設計されています。 オブジェクトは、 パイプライン演算子の詳細については、「集計演算子」を参照してください。 | 大規模なデータセットを処理するために Map-Reduce 集計を実装します。 |
主な特徴 | パイプライン演算子は必要に応じて繰り返すことができます。 パイプライン演算子では、入力ドキュメントごとに1つの出力ドキュメントを生成する必要はありません。 新しいドキュメントを生成したり、フィルターでドキュメントを除外したりすることもできます。
| グループ化操作に加えて、 複雑な集計タスクを実行したり、継続的に増加するデータセットで増分集計を実行したりできます。 |
柔軟性 |
また、 詳細については | カスタム 関数の詳細と制限については、 |
出力結果 | 結果をカーソルとして返します。 パイプラインに
| さまざまなオプションの結果を返します(インライン、新しいコレクション、マージ、置換、削減)。 出力オプションの詳細については、 mapReduce を参照してください。 |
シャーディング | シャーディングされていないコレクションとシャーディングされた入力コレクションをサポートします。
| シャーディングされていないコレクションとシャーディングされた入力コレクションをサポートします。 |
詳細情報 |