DEV Community

Cover image for Pagination - Mongo DB, Express
Abhishek Pathak
Abhishek Pathak

Posted on

4 2 2 2 2

Pagination - Mongo DB, Express

In working with the dashbord system,

There is always a question: What is the best way to do pagination?

Pagination ?

Suppose we have 1000 rows of data, so it will take a lot of bandwidth to fetch data all the at one time, and it will cause a latency(delay). To overcome this, we use pagination.

We set the number of rows per page to 10, 20, 30, and so on. based on the requirements.

In my recent project , I had the same issue.

What I did was use the concepts of skip and limit to achieve my goal.

attachment

As you can see in the image attached:

we have,

id: As the system is dynamic, id will help to fetch specific user data. id is attached to req by a custom middleware fetchuser, which will check if the JWT token is valid, and if it is valid, it will get the id from the token and pass the require.

ITEMS-PER-PAGE: It is a numeric value that is set to 10. This means we are requesting 10 rows or documents per request.

page: This represents the current page. If not, it will be set to 1. I have used parameters to check what page we are on.

skip: Based on the page number and ITEMS-PER-PAGE, it will skip x rows or documents. Supposing we are on page 2 and ITEMS-PER-PAGE is set to 10, skip = (page (2) - 1) * ITEMS-PER-PAGE = 10 ,
and the endpoint will return data from the 11th record.

countPromise: This is to get the total document or row count. This will be helpful to get the maximum number of pages we have. Suppose there are 50 documents in the table, and ITEMS-PER-PAGE is 10, so we will have 5 pages.

usersPromise: This is the list of users that the endpoint will send.

pageCount: The count of pages.

Code is very simple once you read it and do.

If any error, comments are alwyas welcome. I'm trying out this things.


If the article helps you, leave a like, follow, or anything 🙂.

You can follow me on LinkedIn, GitHub, Dev.to and hashnode.

Bye

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

đź‘‹ Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay