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

Paginasi agregasi MongoDB yang efisien?

Dalam metode kursor MongoDB (yaitu saat menggunakan find() ) seperti limit , sort , skip dapat diterapkan dalam urutan apa pun => urutan tidak masalah. Sebuah find() mengembalikan kursor di mana modifikasi diterapkan. Sortir selalu dilakukan sebelum limit, skip juga dilakukan sebelum limit. Jadi dengan kata lain urutannya adalah:sort -> skip -> limit .

Kerangka kerja agregasi tidak mengembalikan kursor DB. Sebaliknya ia mengembalikan dokumen dengan hasil penjumlahan. Ia bekerja dengan menghasilkan hasil antara di setiap langkah pipeline dan dengan demikian urutan operasi sangat penting.

Saya kira MongoDB tidak mendukung urutan metode pengubah kursor karena cara penerapannya secara internal.

Anda tidak dapat membuat halaman pada hasil kerangka kerja agregasi karena hanya ada satu dokumen dengan hasil saja. Anda masih dapat membuat paginasi pada kueri biasa dengan menggunakan lewati dan batasi, tetapi praktik yang lebih baik adalah menggunakan kueri rentang karena efisiensi penggunaan indeks.

PERBARUI:

Karena kerangka agregasi Mongo v2.6 mengembalikan kursor alih-alih satu dokumen. Bandingkan:v2.4 dan v2.6 .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mengurangi ukuran file database MongoDB

  2. MongoDB:WriteResult.getN() selalu mengembalikan 0?

  3. Bagaimana cara menggabungkan array dari banyak dokumen di MongoDB?

  4. Tidak dapat terhubung ke mongo lokal (berjalan) menggunakan 'meteor mongo'

  5. MongoDB db.collection.count()