MongoDBとNode.jsを使用した集計操作の実装方法


まず、Node.jsでMongoDBに接続するためのライブラリをインストールします。一般的には、"mongodb" パッケージを使用します。次のコマンドを使用してインストールします:

npm install mongodb

MongoDBへの接続を確立するために、以下のようなコードを使用します:

const { MongoClient } = require('mongodb');
const uri = 'mongodb://localhost:27017'; // MongoDBの接続URI
const client = new MongoClient(uri);
async function connect() {
  try {
    await client.connect();
    console.log('MongoDBに接続しました');
  } catch (error) {
    console.error('MongoDBへの接続に失敗しました:', error);
  }
}
connect();

接続が確立されたら、集計パイプラインを使用してデータを処理できます。以下に、いくつかの一般的な集計操作の例を示します。

  1. 文書のカウント:

    const result = await client.db('mydatabase').collection('mycollection').countDocuments();
    console.log('文書の総数:', result);
  2. フィルタリングとソート:

    const pipeline = [
    { $match: { status: 'active' } }, // statusが'active'の文書をフィルタリング
    { $sort: { createdAt: -1 } },     // createdAtフィールドで降順にソート
    ];
    const result = await client.db('mydatabase').collection('mycollection').aggregate(pipeline).toArray();
    console.log('フィルタリングとソート結果:', result);
  3. グループ化と集計:

    const pipeline = [
    { $group: { _id: '$category', total: { $sum: '$quantity' } } },  // カテゴリごとの数量合計を計算
    { $sort: { total: -1 } },                                        // 合計値で降順にソート
    ];
    const result = await client.db('mydatabase').collection('mycollection').aggregate(pipeline).toArray();
    console.log('グループ化と集計結果:', result);

これらはいくつかの基本的な集計操作の例ですが、MongoDBの集計パイプラインには多くの演算子とステージがあります。詳細については、MongoDBの公式ドキュメントを参照してください。

このように、MongoDBとNode.jsを組み合わせることで、柔軟なデータ処理と集計が可能になります。