MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak wykorzystać agregację MongoDB do paginacji?

Aby obliczyć sumy i zwrócić podzbiór, należy zastosować grupowanie i pomijanie/ograniczanie do tego samego zbioru danych. W tym celu możesz wykorzystać aspekty

Na przykład, aby pokazać trzecią stronę, 10 dokumentów na stronę:

db.Order.aggregate([
    { '$match'    : { "company_id" : ObjectId("54c0...") } },
    { '$sort'     : { 'order_number' : -1 } },
    { '$facet'    : {
        metadata: [ { $count: "total" }, { $addFields: { page: NumberInt(3) } } ],
        data: [ { $skip: 20 }, { $limit: 10 } ] // add projection here wish you re-shape the docs
    } }
] )

Zwróci pojedynczy dokument z 2 polami:

{
    "metadata" : [ 
        {
            "total" : 300,
            "page" : 3
        }
    ],
    "data" : [ 
        {
            ... original document ...
        }, 
        {
            ... another document ...
        }, 
        {
            ... etc up to 10 docs ...
        }
    ]
}



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak wstawić dokument z datą w mongo?

  2. [Infografika] Porównanie Cassandry i MongoDB

  3. Jak sprawdzić, czy indeks jest używany?

  4. Zaimplementuj autouzupełnianie w MongoDB

  5. Importuj plik CSV do MongoDB za pomocą mongoimport