MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Quelle est la meilleure façon de faire la pagination ajax avec MongoDb et Nodejs ?

L'approche "sauter et limiter" n'est pas très efficace lorsque vous naviguez loin dans l'ensemble de données. Il s'agit en fait d'un algorithme de Shlemiel le Peintre.

Les requêtes de plage sont beaucoup plus efficaces (lorsqu'elles sont prises en charge par des index). Par exemple, imaginons que vous affichez des tweets. La taille de votre page est de 20 et vous êtes à la page 1000 et souhaitez charger la page 1001.

Cette requête

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

est beaucoup moins efficace que

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

(à condition que vous ayez un index sur created_at ).

Vous avez compris :lorsque vous chargez une page, notez l'horodatage du dernier tweet et utilisez-le pour interroger la page suivante.