It is not totally clear to me, but it seems that for every request, for every page, the database is being hit.
Not just that, this pagination has nothing to do with MongoDB, so the query brings all matching data from the DB, and then, on the Python side of things, you (re)create a Paginator object and finally take the page you're interested in.

There seems to be a big waste in terms of data (potentially huge amount of data) travelling around to finally be garbage collected...