sql >> Database >  >> NoSQL >> MongoDB

MongoDB-aggregatie:hoe krijg ik het totale aantal records?

Sinds v.3.4 (denk ik) heeft MongoDB nu een nieuwe aggregatiepijplijnoperator genaamd 'facet' die in hun eigen woorden:

Verwerkt meerdere aggregatiepijplijnen binnen een enkele fase op dezelfde set invoerdocumenten. Elke subpijplijn heeft zijn eigen veld in het uitvoerdocument waar de resultaten worden opgeslagen als een reeks documenten.

In dit specifieke geval betekent dit dat men zoiets als dit kan doen:

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

Het resultaat is (met bijvoorbeeld 100 totale resultaten):

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


  1. Hoe MongoDB Community Edition op Ubuntu te installeren

  2. Controleer of het veld bestaat met MongoDB

  3. Mongo unieke index niet hoofdlettergevoelig

  4. hoe de time-out van de JedisConnectionFactory-basis te configureren op het spring-boot-framework