sql >> Databáze >  >> NoSQL >> MongoDB

Rozsah stránkování MongoDB

Dobrá otázka!

"Kolik je příliš mnoho?" - to samozřejmě závisí na velikosti vašich dat a požadavcích na výkon. Já osobně se cítím nepříjemně, když přeskakuji více než 500-1000 záznamů.

Skutečná odpověď závisí na vašich požadavcích. Zde je to, co moderní weby dělají (nebo alespoň některé z nich).

Za prvé, navbar vypadá takto:

1 2 3 ... 457

Dostanou konečné číslo stránky z celkového počtu záznamů a velikosti stránky. Přejděme na stranu 3. To bude vyžadovat přeskakování z prvního záznamu. Když dorazí výsledky, znáte ID prvního záznamu na straně 3.

1 2 3 4 5 ... 457

Přeskočme další a přejděte na stranu 5.

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

Dostanete nápad. V každém bodě vidíte první, poslední a aktuální stránku a také dvě stránky vpřed a vzad od aktuální stránky.

Dotazy

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. Je to dobrý případ použití pro Redis na ServiceStack REST API?

  2. Jak získat velikost jednoho dokumentu v Mongodb?

  3. Smyčka For v redis s asynchronními požadavky nodejs

  4. Jak vrátit data JSON z php MongoCursor