2012-04-10 9 views
0

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

非常によくスケールアップしません

答えて

0

簡単な解決策は以下のとおりです。

db.col.find(..).skip(i * s).limit(s)ここで、i =ページ(ベース0)の数とs =(あなたのケースでは10)ページサイズ。

skip(N)がo(N)操作であり、Nが増えるにつれて速度が低下するため、このソリューションは大量のデータではうまく機能しません。拡張を行うソリューションは、本質的に、より複雑で一般的な状況になります。

関連する問題