"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > ترقيم الصفحات الأمامية MongoDB: بديل للترثة التقليدية؟

ترقيم الصفحات الأمامية MongoDB: بديل للترثة التقليدية؟

نشر في 2025-05-02
تصفح:968

Can Forward Paging in MongoDB Provide an Alternative to Traditional Pagination?

أثناء تنفيذ ترقيم الصفحات مع MongoDB's .skip () و .limit () المعدلات هو نهج شائع ، يمكن أن يصبح غير فعال عند التعامل مع مجموعات البيانات الكبيرة بسبب استهلاك الذاكرة.

ومع ذلك ، يمكن أن يكون الحصول على آخر مستند _ID للاستعلامات اللاحقة أمرًا صعبًا. يتضمن المفهوم الأساسي العثور على آخر مستند _id في صفحة واستخدامه كإزمة أسفل الصفحة التالية. إليك مثال:

var cursor = db.users.find (). limit (pagesize) ؛ var doc = cursor.next () ؛ var last_id = doc._id ؛ // صفحة 2 var cursor = db.users.find ({'_ id'> last_id}). الحد (10) ؛

يسترجع هذا النهج بكفاءة المجموعة التالية من المستندات دون استهلاك الذاكرة المفرطة. تتمثل إحدى الأساليب في تتبع كلاً من رتبة المستند الأخيرة (أو حقل فرز آخر) وقائمة _ids التي تم استردادها بالفعل.

إليك مثال: var seenids = [] ؛ var lastseenrank = null ؛ var cursor = db.junk.find (). sort ({"rank": -1}). limit (2) ؛ // ... // صفحة 2 var ursor = db.junk.find ( {"_id": {"$ nin": seenids} ، "Rank": "$ lte": lastseenrank} ) .sort ({"Rank": -1}). الحد (2) ؛

يتيح لك هذا استبعاد المستندات التي شوهدت بالفعل والحفاظ على ترتيب الفرز المطلوب.

يتيح لك استرداد نطاقات محددة من البيانات دون المساس بالأداء ، ولكنه يأتي مع بعض القيود ، مثل عدم القدرة على التراجع بسهولة أو القفز إلى صفحات محددة. يتيح لك فهم هذه المفاهيم استخدام هذا النهج بفعالية في تطبيقات MongoDB الخاصة بك.

بيان الافراج يتم استنساخ هذه المقالة في: 1729722274 إذا كان هناك أي انتهاك ، فيرجى الاتصال بـ [email protected] لحذفه.
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3