2016-04-09 3 views
1

MongoDBコレクションでドキュメントを返すRESTful APIを作成しています。 RESTfulであるため、返されるドキュメントの数を25に制限し、次にクライアントが次の25を要求してから次のドキュメントを要求するようにして、すべてのドキュメントが読み込まれるまで続けます。 find()を使用すると、コレクション内の 'all'ドキュメントを取得できます。find()。limit()を使用すると25に制限されますが、常に最初の25になります。 find()の2番目の呼び出しがコレクションの次の25個のドキュメントを返すように、find()で中断した場所を覚えておく方法を示します。これまでのコード...mongooseを使用して一度に25件の結果を返す方法

var db = mongoose.connection; 
db.on('error', console.error.bind(console, 'connection error:')); 
db.once('open', function() {   
    Transaction.find(function (err, transactions) { 
     if (err) { 
      mongoose.connection.close();     
      res.send('FAIL'); 
     } else { 
      mongoose.connection.close(); 
      res.send(transactions); 
     }    
    }).limit(25); 
}); 

tx!

答えて

4

使用skip

var recordsPerPage = 25; 

Transaction 
    .find() 
    .skip((currentPage - 1) * recordsPerPage) 
    .limit(recordsPerPage) 
    .exec(function (err, transactions) { 
     res.send(transactions); 
    }); 

skipは、あなたが渡す位置パラメータから結果を返すことが開始されますあなたが望むのであれば、たとえば、3ページ目(51〜75の結果)の結果は、あなただけに持っています。 50の最初の結果をスキップします。