لدي endpoint لجلب بيانات وهذه ال controller الخاصة بي
exports.list = async (req, res, next) => {
try {
const tags = await Tag.find({});
res.status(200).json(tags);
} catch (error) {
next(error);
}
};
اعرف ان find تجلب بيانات كثيرة لكن تبقى لا تجلب كل البيانات واريد انشاء pagination في هذه ال endpoint وأبحث عن طريقة بسيطة وسهلة لتحقيق ذلك
عند عمل استعلام، يمكننا تخطي عدد من الصفحات باستخدام الدالة skip ويمكن أيضا تحديد عدد العناصر للصفحة باستخادم limit:
مثال لجلب عدد من الطلاب وتقسيمهم في صفحات:
function printStudents(pageNumber, nPerPage) {
print( "Page: " + pageNumber );
db.students.find()
.sort( { _id: 1 } )
.skip( pageNumber > 0 ? ( ( pageNumber - 1 ) * nPerPage ) : 0 )
.limit( nPerPage )
.forEach( student => {
print( student.name );