MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Obtenha uma contagem do total de documentos com o MongoDB ao usar o limite


Mongodb 3.4 introduziu $facet agregação

que processa vários pipelines de agregação em um único estágio no mesmo conjunto de documentos de entrada.

Usando $facet e $group você pode encontrar documentos com $limit e pode obter a contagem total.

Você pode usar a agregação abaixo no mongodb 3.4
db.collection.aggregate([
  { "$facet": {
    "totalData": [
      { "$match": { }},
      { "$skip": 10 },
      { "$limit": 10 }
    ],
    "totalCount": [
      { "$group": {
        "_id": null,
        "count": { "$sum": 1 }
      }}
    ]
  }}
])

Até você pode usar $count agregação que foi introduzida no mongodb 3.6 .

Você pode usar a agregação abaixo no mongodb 3.6
db.collection.aggregate([
  { "$facet": {
    "totalData": [
      { "$match": { }},
      { "$skip": 10 },
      { "$limit": 10 }
    ],
    "totalCount": [
      { "$count": "count" }
    ]
  }}
])