0

急速に変化するデータセットがあり、無数の次/前のナビゲーションを実装しています。データは急速に変化しているため、数値オフセット ベースのクエリは信頼できません。ここでの従来の解決策は、並べ替えられたフィールドに基づいてクエリをオフセットすることです (例: created_at > X)。ただし、主要な並べ替え順序が非常に細かく設定されていない場合、これはうまく機能しません。私が持っていた1つの考えは、次のようなことをすることです:

... WHERE (nongranular = X AND granular > Y) OR nongranular > X ORDER BY ...

ただし、MongoDB で上記の疑似クエリを実装することに満足していません。基本的に 2 つの別個のクエリです。

プライマリソートが粒状ではなく、セカンダリソート順が粒状である場合に、効果的な無数のページネーションクエリを実装するためのよりエレガントなアプローチはありますか?

4

1 に答える 1

0

MongoDB を使用している場合は、_id: {$gt: last_bson_id}. BSON ID の最上位ビットはタイムスタンプであり、最下位ビットはシリアル番号であり、粒度の問題を簡単に解決します。

于 2012-09-10T20:43:23.557 に答える