2016-04-09 13 views
1

Bir MongoDB koleksiyonundaki belgeleri döndüren bir RESTful API oluşturuyorum. RESTful olmakla, 25'e geri gönderilen belgelerin sayısını sınırlamak istiyorum ve daha sonra istemcinin gelecek 25'ini sormasını ve ardından tüm belgeler okunana kadar devam etmesini istiyorum. Find() kullanarak bir koleksiyonda 'tüm' belgeleri alabiliyorum ve find(). Limitini kullanarak() 25 ile sınırlandırabilirim, ancak her zaman ilk 25'i alacağım. Orada herhangi bir iyi kod örneği var mı? Bulmak istediğiniz ikinci aramanın koleksiyondaki sonraki 25 belgeyi geri getirmesi için find() 'da nerede kaldığınızı nasıl hatırlamanız gerektiğini gösteren? Kodum şimdiye kadar ...Mongoose ile bir kerede 25 sonuç döndürme

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!

cevap

4

Kullanım skip:

var recordsPerPage = 25; 

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

skip yönteme geçen pozisyon parametresinden sonuçları dönen başlayacak İstersen Yani, diyelim ki, sayfa 3 (51 ile 75 sonuçlanır) sonuçları, sadece var. İlk 50 sonucu atla.