sql >> データベース >  >> NoSQL >> MongoDB

MongoDB Aggregation:合計レコード数を取得する方法は?

    v.3.4以降(私は思う)、MongoDBには、「ファセット」という名前の新しい集約パイプライン演算子があります。これは、独自の言葉で:

    同じ入力ドキュメントのセットで、単一のステージ内の複数の集約パイプラインを処理します。各サブパイプラインには、出力ドキュメントに独自のフィールドがあり、その結果がドキュメントの配列として保存されます。

    この特定のケースでは、これは次のようなことができることを意味します:

    $result = $collection->aggregate([
      { ...execute queries, group, sort... },
      { ...execute queries, group, sort... },
      { ...execute queries, group, sort... },
      {
        $facet: {
          paginatedResults: [{ $skip: skipPage }, { $limit: perPage }],
          totalCount: [
            {
              $count: 'count'
            }
          ]
        }
      }
    ]);
    

    結果は次のようになります(たとえば、合計100件の結果):

    [
      {
        "paginatedResults":[{...},{...},{...}, ...],
        "totalCount":[{"count":100}]
      }
    ]
    


    1. mongoの結果から_idを削除します

    2. MongoDBで範囲クエリを使用してページネーションを行う方法は?

    3. rediskeysコマンドで「OR」条件を適用する方法

    4. C#MongoDB個別クエリ構文