MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Bagaimana cara menggunakan agregasi MongoDB untuk pagination?

Untuk menghitung total dan mengembalikan subset, Anda perlu menerapkan pengelompokan dan lewati/batas ke set data yang sama. Untuk itu Anda dapat memanfaatkan aspek

Misalnya untuk menampilkan halaman ke-3, 10 dokumen per halaman:

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
    } }
] )

Ini akan mengembalikan satu dokumen dengan 2 bidang:

{
    "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. Panjang nilai bidang string di mongoDB

  2. Memeriksa apakah suatu bidang berisi string

  3. Pertimbangan Dasar untuk Mengambil Cadangan MongoDB

  4. Periksa Keberadaan Koleksi di MongoDB

  5. apakah ada cara untuk menghasilkan ObjectId secara otomatis ketika Model luwak baru?