コレクションにページネーション機能を作りたいです。「開始」位置と「制限」位置を持つドキュメントを見つけて、単一のクエリでドキュメントの総数を取得するにはどうすればよいですか?
19069 次
5 に答える
9
プラグインMongoose Paginateを使用できます。
$ npm install mongoose-paginate
ルートまたはコントローラーの後に、次を追加するだけです:
Model.paginate({}, { page: 3, limit: 10 }, function(err, result) {
// result.docs
// result.total
// result.limit - 10
// result.page - 3
// result.pages
});
于 2016-03-12T18:35:39.470 に答える
4
多くのページを予定している場合は、skip/limit を使用せず、範囲を計算してください。
同様の質問については、Scott の回答を参照してください: MongoDB - ページング
于 2012-09-22T13:59:13.800 に答える
1
アップデート :
スキップと制限の使用は、ページネーションには適していません。これがそれについての議論です。
@Wes Freeman、良い答えを出しました。リンクされたポーズを読みました。範囲クエリを使用する必要があります。n = 0; i = n + 10; db.students.find({"id":{$ gt:n、$ lt:(n + i)}});
OLD ANSWER(これは使用しないでください)
次のようなものを使用します
n = db.students.find().skip(n).limit(10);
//pass n dynamically, so for page 1 it should be 0 , page 2 it should be 10 etc
その他のドキュメントはhttp://www.mongodb.org/display/DOCS/Advanced+Queriesにあります
于 2012-09-22T09:54:18.103 に答える