Node.js で Mongoose を使用してページ分割するにはどうすればよいでしょうか? 質問する

Node.js で Mongoose を使用してページ分割するにはどうすればよいでしょうか? 質問する

Node.js と mongoose を使用して Web アプリケーションを作成しています。呼び出しから取得した結果をページ分割するにはどうすればよいでしょう.find()か。SQL に匹敵する機能が欲しいです"LIMIT 50,100"

ベストアンサー1

この質問で受け入れられた回答には非常に失望しています。これはスケールしません。cursor.skip() の細かい文字を読むと:

cursor.skip() メソッドは、結果を返す前に、サーバーがコレクションまたはインデックスの先頭からオフセットまたはスキップ位置を取得する必要があるため、多くの場合コストがかかります。オフセット (上記の pageNumber など) が増加すると、cursor.skip() は遅くなり、CPU を集中的に使用するようになります。コレクションが大きいと、cursor.skip() は IO バウンドになる可能性があります。

スケーラブルな方法でページ区切りを実現するには、limit( ) と少なくとも 1 つのフィルター基準を組み合わせます。createdOn 日付は多くの目的に適しています。

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

おすすめ記事