MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Obtenez un décompte du nombre total de documents avec MongoDB lors de l'utilisation de la limite

Mongodb 3.4 a introduit $facet agrégation

qui traite plusieurs pipelines d'agrégation en une seule étape sur le même ensemble de documents d'entrée.

Utiliser $facet et $group vous pouvez trouver des documents avec $limit et peut obtenir le nombre total.

Vous pouvez utiliser l'agrégation ci-dessous dans mongodb 3.4

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

Même vous pouvez utiliser $count agrégation qui a été introduite dans mongodb 3.6 .

Vous pouvez utiliser l'agrégation ci-dessous dans mongodb 3.6

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