0

私は .net アプリケーションにページングを実装しています。ページ番号ごとにデータを取得したいので、たとえば、合計 100 個のアイテムがあり、ページごとに 10 個のアイテムを表示している場合、ユーザーが「2」をクリックすると、次のアイテムが表示されます。 11 から 20 で、mongo から 11 から 20 の間のデータのみをフェッチしたいのですが、SQL でこれを行う方法は知っていますが、Mongo は初めてです。

何か案が?

4

1 に答える 1

0

あまりスケールアップしない簡単な解決策は次のとおりです。

db.col.find(..).skip(i * s).limit(s)ここで、i = ページ番号 (0 ベース) および s = ページ サイズ (この場合は 10) です。

前述したように、skip(N) は o(N) 操作であり、N が増加すると速度が低下するため、このソリューションは大量のデータに対してはうまく機能しません。スケーリングするソリューションはより複雑で、一般的に状況に応じた性質のものです。

于 2012-04-10T11:07:05.847 に答える