MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Jak stronicować z Mongoose w Node.js?

Jestem bardzo rozczarowany przyjętymi odpowiedziami na to pytanie. To się nie skaluje. Jeśli przeczytasz drobny druk na cursor.skip( ):

Metoda cursor.skip() jest często kosztowna, ponieważ wymaga od serwera przejścia od początku kolekcji lub indeksu w celu uzyskania przesunięcia lub pozycji pominięcia przed rozpoczęciem zwracania wyniku. Wraz ze wzrostem przesunięcia (np. pageNumber powyżej) kursor.skip() będzie wolniejszy i bardziej obciążający procesor. W przypadku większych kolekcji, cursor.skip() może zostać powiązany z IO.

Aby osiągnąć paginację w sposób skalowalny, należy połączyć limit() z co najmniej jednym kryterium filtrowania, data createdOn nadaje się do wielu celów.

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tworzenie obiektu BSON z ciągu JSON

  2. $przeglądać wiele poziomów bez $unwind?

  3. MongoDB/NoSQL:przechowywanie historii zmian dokumentów

  4. Dlaczego nie zaleca się zamykania połączenia MongoDB w dowolnym miejscu w kodzie Node.js?

  5. Jak wygenerować unikalny identyfikator obiektu w mongodb