اذهب إلى المحتوى

السؤال

نشر

لدي 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 وأبحث عن طريقة بسيطة وسهلة لتحقيق ذلك 

Recommended Posts

  • 0
نشر

عند عمل استعلام، يمكننا تخطي عدد من الصفحات باستخدام الدالة 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 );
             } );
}
  • pageNumber لعرض رقم الصفحة المطلوبة
  • nPerPage عدد العناصر للصفحة الواحدة
  • تم ترتيب الطلاب حسب المعرف الخاص بهم id.
  • العلاقة الرياضية تحدد عدد السجلات التي سيتم تخطيها، رقم الصفحة مضروبا بعدد العناصر لصفحة واحدة

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...