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

Jaký je nejlepší způsob, jak provádět stránkování ajax s MongoDb a Nodejs?

Přístup „přeskočit a omezit“ není příliš efektivní, když stránkujete daleko do datové sady. Ve skutečnosti je to algoritmus Shlemiela Malíře.

Rozsahové dotazy jsou mnohem efektivnější (pokud jsou podporovány indexy). Představme si například, že zobrazujete tweety. Velikost vaší stránky je 20 a jste na stránce 1000 a chcete načíst stránku 1001.

Tento dotaz

db.tweets.find().sort({created_at: -1}).skip(1001*20).limit(20)

je hodně méně efektivní než

db.tweets.find({created_at: {$lt: last_displayed_date}}).
          sort({created_at: -1}).limit(20);

(za předpokladu, že máte index na created_at ).

Dostanete nápad:když načtete stránku, poznamenejte si časové razítko posledního tweetu a použijte jej k dotazu na další stránku.




  1. Jak spravovat uživatele a ověřování v MongoDB

  2. Java Client pro připojení ElasticCache Redis Cache Node

  3. Odkazování na jiné schéma v Mongoose

  4. Migrace MongoDB na DynamoDB, část 1