Docs Menu
Docs Home
/
MongoDBマニュアル
/ /

集計コマンドの比較

項目一覧

  • 集計コマンドの比較テーブル

注意

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

MongoDB 5.0以降、 map-reduceは非推奨です。

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

次の表は、MongoDB 集計コマンドの機能の簡単な概要です。

説明

集計タスクのパフォーマンスとユーザビリティを向上させるという具体的な目的で設計されています。

オブジェクトは、 $group$match$sortなどの一連のパイプライン演算子を通過する際に変換される「パイプライン」アプローチを使用します。

パイプライン演算子の詳細については、「 集計パイプライン演算子」を参照してください。

大規模なデータセットを処理するために Map-Reduce 集計を実装します。
主な特徴

パイプライン演算子は必要に応じて繰り返すことができます。

パイプライン演算子では、入力ドキュメントごとに1つの出力ドキュメントを生成する必要はありません。

新しいドキュメントを生成したり、フィルターでドキュメントを除外したりすることもできます。

$mergeステージを使用すると、オンデマンドのマテリアライズドビューを作成できます。ここでは、出力コレクションの内容をパイプラインの実行時に段階的に更新できます。 $mergeは結果(新しいドキュメントの挿入、ドキュメントのマージ、ドキュメントの置換、既存のドキュメントの保持、操作の失敗、カスタムアップデートパイプラインによるドキュメントの処理)を既存のコレクションに組み込むことができます。

グループ化操作に加えて、 複雑な集計タスクを実行したり、継続的に増加するデータセットで増分集計を実行したりできます。

map-reduce の例」および「 map-reduce の増分実行 」を参照してください。

柔軟性

$accumulator$functionを使用してカスタム集計式を定義できます。

また、 $projectパイプライン演算子を使用して、計算フィールドを追加したり、新しい仮想サブオブジェクトを作成したり、結果の最上位にサブフィールドを抽出したりすることもできます。

使用可能なすべてのパイプライン演算子の詳細については、「 $projectを参照してください。また、使用可能なすべてのパイプライン演算子の詳細については、「 集計パイプライン演算子」を参照してください。

カスタムmapreducefinalize JavaScript 関数は、集計ロジックの柔軟性を提供します。

関数の詳細と制限については、 mapReduceを参照してください。

出力結果

結果をカーソルとして返します。 パイプラインに$outステージまたは$mergeステージが含まれている場合、カーソルは空です。

$outを使用すると、既存の出力コレクションを完全に置き換えたり、出力を新しいコレクションに置き換えたりすることができます。 詳細については、 $outを参照してください。

$mergeを使用すると、新規または既存のコレクションに出力できます。 既存のコレクションでは、結果を出力コレクションに組み込む方法を指定できます(新しいドキュメントの挿入、ドキュメントのマージ、ドキュメントの置換、既存のドキュメントの保持、操作の失敗、カスタム更新パイプラインによるドキュメントの処理)。 詳細については、 $mergeを参照してください。

さまざまなオプションの結果を返します(インライン、新しいコレクション、マージ、置換、削減)。 出力オプションの詳細については、 mapReduceを参照してください。
シャーディング

シャーディングされていないコレクションとシャーディングされた入力コレクションをサポートします。

$merge は、シャーディングされていないコレクションまたはシャーディングされたコレクションに出力できます。

シャーディングされていないコレクションとシャーディングされた入力コレクションをサポートします。
詳細情報

Tip

以下も参照してください。

戻る

コマンド