Jeg er meget skuffet over de accepterede svar i dette spørgsmål. Dette vil ikke skalere. Hvis du læser det med småt på cursor.skip( ):
Cursor.skip()-metoden er ofte dyr, fordi den kræver, at serveren går fra begyndelsen af samlingen eller indekset for at få offset- eller springpositionen, før den begynder at returnere resultatet. Efterhånden som offset (f.eks. pageNumber ovenfor) øges, vil cursor.skip() blive langsommere og mere CPU-intensiv. Med større samlinger kan cursor.skip() blive IO bundet.
For at opnå paginering på en skalerbar måde, kombinere en grænse( ) sammen med mindst ét filterkriterium, en oprettet On-dato passer til mange formål.
MyModel.find( { createdOn: { $lte: request.createdOnBefore } } )
.limit( 10 )
.sort( '-createdOn' )