sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur paginerar man med Mongoose i Node.js?

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


  1. elasticsearch v.s. MongoDB för filtreringsprogram

  2. Snabbaste sättet att lagra en numpy array i redis

  3. Pop flera värden från Redis datastruktur atomärt?

  4. Hur man exporterar Redis-nycklar som CSV med CLI