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

Ottieni un conteggio dei documenti totali con MongoDB quando usi limit

Mongodb 3.4 ha introdotto $facet aggregazione

che elabora più pipeline di aggregazione all'interno di una singola fase sullo stesso insieme di documenti di input.

Utilizzando $facet e $group puoi trovare documenti con $limit e può ottenere il conteggio totale.

Puoi utilizzare l'aggregazione di seguito in mongodb 3.4

db.collection.aggregate([
  { "$facet": {
    "totalData": [
      { "$match": { }},
      { "$skip": 10 },
      { "$limit": 10 }
    ],
    "totalCount": [
      { "$group": {
        "_id": null,
        "count": { "$sum": 1 }
      }}
    ]
  }}
])

Anche tu puoi usare $count aggregazione che è stata introdotta in mongodb 3.6 .

Puoi utilizzare l'aggregazione di seguito in mongodb 3.6

db.collection.aggregate([
  { "$facet": {
    "totalData": [
      { "$match": { }},
      { "$skip": 10 },
      { "$limit": 10 }
    ],
    "totalCount": [
      { "$count": "count" }
    ]
  }}
])