Docs Menu
Docs Home
/
データベース マニュアル

集計操作

集計操作は、複数のドキュメントを処理し、計算結果を返します。 集計操作を使用すると、次のことができます。

  • 複数のドキュメントの値をグループ化します。

  • グループ化されたデータに対して操作を実行して、1 つの結果を返します。

  • 時間の経過に伴うデータの変化を分析します。

  • データの最新バージョンをクエリします。

MongoDBに組み込まれている集計演算子 を使用すると、データを別のプラットフォームに移動することなく、クラスターで分析を実行できます。

集計操作を実行するには、次を使用できます。

  • 集計パイプラインは、集計を実行するための推奨される方法です。

  • 単一目的の集約方法。シンプルですが、 aggregation pipelineの機能がありません。

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

集計パイプラインは、ドキュメントを処理する 1 つ以上の ステージで構成されます。これらのドキュメントは、コレクション、ビュー、または特別に設計された ステージから取得されます。

各ステージは、入力ドキュメントに対して操作を実行します。例、 ステージでは $filter ドキュメント、$group ドキュメント、および 値の計算が可能です。ステージが出力するドキュメントは、パイプラインの次のステージに渡されます。

集計パイプラインは、ドキュメントのグループの結果を返す場合があります。「 集計パイプラインによる更新 」に示されているステージを使用して、集計パイプラインでドキュメントを更新することもできます。

注意

aggregation pipelinedb.collection.aggregate()collectionメソッドで実行される は、パイプラインに$merge または$out ステージが含まれていない限り、 内のドキュメントを変更しません。

次の例パイプラインでは、 MongoDB Atlasで利用可能なサンプルデータ、具体的には sample_training.routesコレクションのドキュメントを使用します。このパイプラインでは、米国アラート(PTX)のポート条件が

まず、$match ステージを追加して、src_airport 値が PDX で、かつ stops がゼロのドキュメントをフィルタリングします。

{
$match : {
"src_airport" : "PDX",
"stops" : 0
}
}

$match ステージにより、パイプライン内のドキュメント数が 66、985 から 113 に減少します。次に、$group 航空会社名別のドキュメントをし、乗数をカウントします。

{
$group : {
_id : {
"airline name": "$airline.name",
}
count : {
$sum : 1
}
}
}

$group ステージでは、パイプライン内のドキュメント数が 16 航空会社に削減されます。最も多くのルートが利用できる航空会社を見つけるには、$sort ステージを使用して残りのドキュメントを降順で並べ替えます。

{
$sort : {
count : -1
}
}

ドキュメントをソートした後、$limit ステージを使用して、PDB からの最も直接的な影響を提供する上位 3 つの航空会社を返します。

{
$limit : 3
}

この集計パイプラインを通じてドキュメントを sample_training.routesコレクションに配置すると、PDB からの非停止サービスを提供している上位 3 つの航空会社は、それぞれ、39、17、13 ルートを含む地理的フィールド。

完全なパイプラインは次のようになります。

db.routes.aggregate( [
{
$match : {
"src_airport" : "PDX",
"stops" : 0
}
},
{
$group : {
_id : {
"airline name": "$airline.name",
}
count : {
$sum: 1
}
}
},
{
$sort : {
count : -1
}
},
{
$limit : 3
}
] )

サンプル入力ドキュメントを含む実行可能な例については、 「完全なaggregation pipelineの例」を参照してください。

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

単一目的の集約方法は、単一のcollectionからドキュメントを集約します。 この方法は単純ですが、 aggregation pipelineの機能が欠けています。

方式
説明

collectionまたはビュー内のドキュメントのおおよその数を返します。

collectionまたはビュー内のドキュメントの数を返します。

指定されたフィールドに対して異なる値を持つドキュメントの範囲を返します。

戻る

データベース参照

ルール バッジを取得する

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

詳細

項目一覧