sql >> Databáze >  >> NoSQL >> MongoDB

Získejte celkový počet dokumentů s MongoDB při použití limitu

Mongodb 3.4 zavedla $facet agregace

který zpracovává více agregačních kanálů v rámci jedné fáze na stejné sadě vstupních dokumentů.

Pomocí $facet a $group můžete najít dokumenty s $limit a může získat celkový počet.

Níže uvedenou agregaci můžete použít v mongodb 3.4

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

I vy můžete použít $count agregace, která byla zavedena v mongodb 3.6 .

Níže uvedenou agregaci můžete použít v mongodb 3.6

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


  1. Rdbtools ve společnosti Redis Conf18

  2. MongoDB aktualizuje pole ve vnořeném poli

  3. Pruh:Musí poskytnout zdroj nebo zákazníka

  4. Redis návrh pro výběr datového typu