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

Comment paginer avec Mongoose dans Node.js ?

Je suis très déçu par les réponses acceptées à cette question. Cela ne sera pas à l'échelle. Si vous lisez les petits caractères sur le curseur.skip( ):

La méthode cursor.skip() est souvent coûteuse car elle oblige le serveur à parcourir le début de la collection ou de l'index pour obtenir le décalage ou la position de saut avant de commencer à renvoyer le résultat. Au fur et à mesure que le décalage (par exemple, numéro de page ci-dessus) augmente, cursor.skip() deviendra plus lent et plus gourmand en CPU. Avec des collections plus importantes, cursor.skip() peut devenir lié aux E/S.

Pour obtenir une pagination de manière évolutive, combinez une limite () avec au moins un critère de filtre, une date createdOn convient à plusieurs fins.

MyModel.find( { createdOn: { $lte: request.createdOnBefore } } )
.limit( 10 )
.sort( '-createdOn' )