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

pagination jarak MongoDB

Pertanyaan bagus!

"Berapa banyak yang terlalu banyak?" - itu, tentu saja, tergantung pada ukuran data dan persyaratan kinerja Anda. Saya, secara pribadi, merasa tidak nyaman ketika saya melewatkan lebih dari 500-1000 catatan.

Jawaban sebenarnya tergantung pada kebutuhan Anda. Inilah yang dilakukan situs modern (atau, setidaknya, beberapa di antaranya).

Pertama, navbar terlihat seperti ini:

1 2 3 ... 457

Mereka mendapatkan nomor halaman akhir dari jumlah catatan total dan ukuran halaman. Mari kita lompat ke halaman 3. Itu akan melibatkan beberapa lompatan dari catatan pertama. Saat hasil tiba, Anda tahu id catatan pertama di halaman 3.

1 2 3 4 5 ... 457

Mari lewati lagi dan buka halaman 5.

1 ... 3 4 5 6 7 ... 457

Anda mendapatkan idenya. Di setiap titik, Anda melihat halaman pertama, terakhir, dan saat ini, dan juga dua halaman maju dan mundur dari halaman saat ini.

Permintaan

var current_id; // id of first record on current page.

// go to page current+N
db.collection.find({_id: {$gte: current_id}}).
              skip(N * page_size).
              limit(page_size).
              sort({_id: 1});

// go to page current-N
// note that due to the nature of skipping back,
// this query will get you records in reverse order 
// (last records on the page being first in the resultset)
// You should reverse them in the app.
db.collection.find({_id: {$lt: current_id}}).
              skip((N-1)*page_size).
              limit(page_size).
              sort({_id: -1});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. layanan mongodb tidak dimulai

  2. validasi kustom luwak menggunakan 2 bidang

  3. Pagination lambat lebih dari banyak catatan di mongodb

  4. Ikhtisar Cadangan Percona untuk MongoDB

  5. $skip dan $limit dalam kerangka agregasi