sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan pagineres med Mongoose i Node.js?

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' )


  1. Hvordan sammenlignes Morphia, Mongo4j og Spring-data for MongoDB?

  2. Bedste praksis for MongoDB Security

  3. Opdater et element i et array, der er i et array

  4. MongoDB - $set til at opdatere eller skubbe Array-element