現在、MongoDBでWebアプリケーションを作成しており、ブラウザにコンテンツのページを取り込みます。MongoDB - 遠隔クエリによるページング
私は(ここに見られる:https://scalegrid.io/blog/fast-paging-with-mongodb/を):ページングの二つの方法を認識してい
1)
2).find({_id > last_id}).limit(n)
私は最初のソリューションとパフォーマンスの問題を理解し、そのので、オプションが画像の外にあった。
結果が大きい場合は、結果が_id
でソートされている場合にのみ、2番目の解決策が効果的です。日付などの固有ではないフィールドでソートすると、その日付のドキュメントが複数存在することがあります。そのため、一部のドキュメントが結果から除外される可能性があります。
さらに、常に更新する必要があり、前のページの最後のドキュメントの_id
によって決定される変数がlast_id
であるため、ユーザーはページを直線的に移動する必要があります。ユーザーが1ページ目から7ページ目にジャンプした場合、ページ2の結果がページ2に表示されます。
これは私の質問です。一意でないフィールド(DateやfirstNameなど)でソートしていた場合はページングを行い、ユーザーが複数のページを一度にジャンプできるようにするにはどうすればよいですか?
どのようなヒントもありがとうございます、ありがとうございます!
あなたは、負荷のどのような種類を実行していますか? DBに数百万と数百万のレコードが含まれていない限り、パフォーマンスの問題に気づくことはありません。以上のことを複雑にしないでください。単に 'find()。skip()。limit()'を使ってください。最初に動作させてから、実際に必要なときに最適化してください。 – VtoCorleone