sql >> Databáze >  >> NoSQL >> MongoDB

Jak stránkovat s Mongoose v Node.js?

Jsem velmi zklamán přijatými odpověďmi v této otázce. Toto nebude škálovat. Pokud si přečtete drobné písmo na kurzor.skip():

Metoda kurzor.skip() je často drahá, protože vyžaduje, aby server prošel od začátku kolekce nebo indexu, aby získal pozici posunutí nebo přeskočení, než začne vracet výsledek. Jak se offset (např. pageNumber výše) zvyšuje, bude kurzor.skip() pomalejší a náročnější na CPU. U větších kolekcí se může kurzor.skip() stát IO.

Chcete-li dosáhnout stránkování škálovatelným způsobem, zkombinujte limit() spolu s alespoň jedním kritériem filtru, datum createdOn vyhovuje mnoha účelům.

MyModel.find( { createdOn: { $lte: request.createdOnBefore } } )
.limit( 10 )
.sort( '-createdOn' )


  1. Co skutečně znamenalo, že MongoDB nevyhovuje ACID před v4?

  2. Má master vždy redis instance s nejmenší prioritou?

  3. Monitorování serveru Percona pro MongoDB – klíčové metriky

  4. Mongodb, zjistěte, zda je kolekce prázdná, node.js