sql >> Base de Datos >  >> NoSQL >> MongoDB

Obtenga un recuento del total de documentos con MongoDB al usar el límite

MongoDB 3.4 ha introducido $facet agregación

que procesa varias canalizaciones de agregación dentro de una sola etapa en el mismo conjunto de documentos de entrada.

Usando $facet y $group puede encontrar documentos con $limit y puede obtener el recuento total.

Puede usar la siguiente agregación en mongodb 3.4

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

Incluso puedes usar $count agregación que se ha introducido en mongodb 3.6 .

Puede usar la siguiente agregación en mongodb 3.6

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