sql >> データベース >  >> NoSQL >> MongoDB

MongoDbとNodejsでajaxページネーションを行うための最良の方法は何ですか?

    「スキップアンドリミット」アプローチは、データセットに深くページングしている場合はあまり効率的ではありません。これは事実上、画家のアルゴリズムであるシュレミエルです。

    範囲クエリははるかに効率的です(インデックスでサポートされている場合)。たとえば、ツイートを表示しているとしましょう。ページサイズが20で、ページ1000にいて、ページ1001をロードしたい。

    このクエリ

    db.tweets.find().sort({created_at: -1}).skip(1001*20).limit(20)
    

    多い

    よりも効率が悪い
    db.tweets.find({created_at: {$lt: last_displayed_date}}).
              sort({created_at: -1}).limit(20);
    

    created_atにインデックスがある場合 。

    ページをロードするときに、最後のツイートのタイムスタンプをメモし、それを使用して次のページをクエリするというアイデアが得られます。




    1. MongoDBで日付から議事録を取得する5つの方法

    2. SpringBoot Elasticache JedisMovedDataException:移動

    3. Python-redis:クライアントがdecode_responses=Trueでセットアップされた後にバイナリデータを取得する

    4. CMakeExternalProject_Addを使用してmongo-cxx-driverをビルドする