MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Erhalten Sie eine Zählung der gesamten Dokumente mit MongoDB, wenn Sie das Limit verwenden

Mongodb 3.4 hat $facet eingeführt Zusammenfassung

die mehrere Aggregations-Pipelines innerhalb einer einzigen Stufe auf demselben Satz von Eingabedokumenten verarbeitet.

Verwenden von $facet und $group Sie können Dokumente mit $limit finden und kann die Gesamtzahl abrufen.

Sie können die folgende Aggregation in mongodb 3.4 verwenden

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

Auch Sie können $count verwenden Aggregation, die in mongodb 3.6 eingeführt wurde .

Sie können die folgende Aggregation in mongodb 3.6 verwenden

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