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

Agregasi MongoDB:Bagaimana cara mendapatkan jumlah catatan total?

Sejak v.3.4 (saya pikir) MongoDB sekarang memiliki operator pipa agregasi baru bernama 'facet' yang dengan kata-kata mereka sendiri:

Memproses beberapa saluran agregasi dalam satu tahap pada kumpulan dokumen input yang sama. Setiap sub-pipa memiliki bidangnya sendiri dalam dokumen keluaran di mana hasilnya disimpan sebagai larik dokumen.

Dalam kasus khusus ini, ini berarti seseorang dapat melakukan sesuatu seperti ini:

$result = $collection->aggregate([
  { ...execute queries, group, sort... },
  { ...execute queries, group, sort... },
  { ...execute queries, group, sort... },
  {
    $facet: {
      paginatedResults: [{ $skip: skipPage }, { $limit: perPage }],
      totalCount: [
        {
          $count: 'count'
        }
      ]
    }
  }
]);

Hasilnya adalah (dengan untuk ex 100 total hasil):

[
  {
    "paginatedResults":[{...},{...},{...}, ...],
    "totalCount":[{"count":100}]
  }
]


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Permintaan Mongodb berdasarkan item pada posisi tertentu dalam array

  2. Copot pemasangan mongoDB dari ubuntu

  3. Cara cepat untuk menemukan duplikat pada kolom yang diindeks di mongodb

  4. Pembaruan sebagian dari subdokumen dengan nodejs/luwak

  5. Penurunan kinerja yang parah dengan Aliran Perubahan MongoDB