sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB Aggregation:Hvordan får man det samlede antal poster?

Siden v.3.4 (tror jeg) har MongoDB nu en ny aggregeringspipeline-operatør ved navn 'facet', som med deres egne ord:

Behandler flere aggregeringspipelines inden for et enkelt trin på det samme sæt inputdokumenter. Hver underpipeline har sit eget felt i outputdokumentet, hvor dens resultater gemmes som en række dokumenter.

I dette særlige tilfælde betyder det, at man kan gøre sådan noget:

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

Resultatet bliver (med f.eks. 100 samlede resultater):

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

  1. Er der en god måde at støtte popmedlemmer fra Redis Sorted Set?

  2. Er det muligt at få felterne i projektionsrækkefølgen i Aggregation Frameworks mongo

  3. Django Channels Error - Kan ikke importere BACKEND 'asgi_redis.RedisChannelLayer'

  4. HBase:5 tips til at køre på EC2 med lav hukommelse