Jag är mycket besviken över de accepterade svaren i denna fråga. Detta kommer inte att skala. Om du läser det finstilta på cursor.skip( ):
Metoden cursor.skip() är ofta dyr eftersom den kräver att servern går från början av insamlingen eller indexet för att få offset- eller skippositionen innan den börjar returnera resultatet. När offset (t.ex. pageNumber ovan) ökar, kommer cursor.skip() att bli långsammare och mer CPU-intensiv. Med större samlingar kan cursor.skip() bli IO-bunden.
För att uppnå sidnumrering på ett skalbart sätt kombinera en limit( ) tillsammans med minst ett filterkriterium, ett createOn-datum passar många syften.
MyModel.find( { createdOn: { $lte: request.createdOnBefore } } )
.limit( 10 )
.sort( '-createdOn' )