MongoDB アグリゲーションパイプライン
アグリゲーション(集計)操作を使用すると、データのグループ化、ソート、計算の実行、データ分析など、多岐にわたる処理が可能になります。
1. アグリゲーションパイプラインの仕組み
アグリゲーションパイプラインは、1つ以上の「ステージ(Stage)」で構成されます。ここで非常に重要なのは、ステージの順序です。各ステージは、前のステージから渡された結果に対して処理を行います。
1.1 コード例
以下の例では、2つのステージを使用してデータを処理しています。
db.posts.aggregate([
// ステージ 1: "likes" が 1 より大きいドキュメントのみを抽出(マッチング)
{
$match: { likes: { $gt: 1 } }
},
// ステージ 2: カテゴリごとにドキュメントをグループ化し、各カテゴリの likes の合計を算出
{
$group: { _id: "$category", totalLikes: { $sum: "$likes" } }
}
])2. サンプルデータのロード
アグリゲーションパイプラインの各ステージの詳細を学ぶために、まずはデータベースにサンプルデータをロードしましょう。
- MongoDB Atlas のダッシュボードから「Databases」に移動します。
- 対象クラスターの三点リーダー(...)ボタンをクリックし、「Load Sample Dataset」を選択します。
- これにより、複数のサンプルデータセットがデータベースにロードされます。
次のセクションからは、このサンプルデータを使用して、様々なアグリゲーションパイプラインのステージについて詳しく深掘りしていきます。データ分析の強力な武器を手に入れましょう。