Mongooseのページネーションと集計の方法


Mongooseは、MongoDBを操作するためのNode.jsのオブジェクトモデリングツールです。Mongooseを使用してデータを集計し、ページネーションを実装する方法を以下に示します。

  1. ページネーションの基本的な実装:

    • MongooseのModel.find()メソッドを使用して、データを検索します。
    • skip()limit()メソッドを使用して、ページネーションを実現します。
    • 例えば、以下のコードは、2ページ目の結果を10件ずつ表示する方法を示しています。
    const page = 2;
    const limit = 10;
    const skip = (page - 1) * limit;
    Model.find()
     .skip(skip)
     .limit(limit)
     .exec((err, results) => {
       // 結果の処理
     });
  2. 集計パイプラインを使用したページネーション:

    • MongooseのModel.aggregate()メソッドを使用して、集計パイプラインを構築します。
    • skiplimitステージを使用して、ページネーションを設定します。
    • 以下のコードは、年齢が30以上のユーザーを集計し、2ページ目の結果を10件ずつ表示する例です。
    const page = 2;
    const limit = 10;
    const skip = (page - 1) * limit;
    Model.aggregate([
     { $match: { age: { $gte: 30 } } },
     { $skip: skip },
     { $limit: limit }
    ]).exec((err, results) => {
     // 結果の処理
    });