sql >> Databasteknik >  >> NoSQL >> MongoDB

Få en räkning av totala dokument med MongoDB när du använder limit

Mongodb 3.4 har introducerat $facet aggregering

som behandlar flera aggregeringspipelines inom ett enda steg på samma uppsättning indatadokument.

Använder $facet och $group du kan hitta dokument med $limit och kan få totalt antal.

Du kan använda nedanstående aggregering i mongodb 3.4

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

Även du kan använda $count aggregering som har introducerats i mongodb 3.6 .

Du kan använda nedanstående aggregering i mongodb 3.6

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


  1. Vad är skillnaden mellan metoden insert(), insertOne() och insertMany()?

  2. Flera sammanfogningsvillkor med operatorn $lookup

  3. Hur använder man sadd med flera element i Redis med Python API?

  4. Mongo Change Streams körs flera gånger (typ):Nodapp som kör flera instanser