2016-05-18 8 views
0

これは私が達成したいものです。MongoDB:連続したクエリで大量のドキュメントを取得する方法

私は多数のドキュメントを持つコレクションを持っています。ユーザーが特定のフィールドを照会すると、多数のドキュメントが返されます。 しかし、帯域幅/処理上の理由から、私はすべてのドキュメントを取得してユーザー(ブラウザ)に一度に送信したくありません。

ユーザーが検索フィールドでGETリクエストを行うとします。これにより1000件の結果が得られます。しかし、私は最初の10をユーザーに送るだけです。そして、ユーザーは次の10を要求します。

これをMongodbで達成する方法はありますか?特定のカウンタを使用してクエリを実行し、それを連続するクエリでインクリメントすることはできますか?

このメカニズムを実現するには、どのような方法が良いですか?

ありがとうございます。あなたが与えている場合

答えて

1

MongoDBのネイティブスキップ()とリミットを使用してページング操作をサポートしています()コマンドを使用します。

//first 10 results -> page 1 
collection.find().limit (10) 

//next 10 results -> page 2 
collection.find().skip(10).limit(10) 

//next 10 results -> page 3 
collection.find().skip(20).limit(10) 
1

はここ数は、最初の10件のレコードを.....、1,2,3を表す意味数= 1

db.students.find().skip(number > 0 ? ((number-1)*10) : 0).limit(10); 
//first 10 records ,number = 1 
db.students.find().skip(1 > 0 ? ((1-1)*10) : 0).limit(10); 

//next 10 records ,number = 2 
db.students.find().skip(2 > 0 ? ((2-1)*10) : 0).limit(10); 
関連する問題