Ik ben erg teleurgesteld over de geaccepteerde antwoorden op deze vraag. Dit zal niet schalen. Als je de kleine lettertjes leest op cursor.skip( ):
De methode cursor.skip() is vaak duur omdat het vereist dat de server vanaf het begin van de verzameling of index loopt om de offset- of skip-positie te krijgen voordat het resultaat begint te retourneren. Naarmate offset (bijv. paginanummer hierboven) toeneemt, wordt cursor.skip() langzamer en CPU-intensiever. Bij grotere verzamelingen kan cursor.skip() IO-gebonden worden.
Om paginering op een schaalbare manier te bereiken, combineert u een limiet( ) samen met ten minste één filtercriterium, een datum gemaakt op is geschikt voor vele doeleinden.
MyModel.find( { createdOn: { $lte: request.createdOnBefore } } )
.limit( 10 )
.sort( '-createdOn' )