الاحتفاظ بالنتائج الأولى
جزء من قسم قواعد البيانات باستخدام MongoDB في رحلة Node.js على Coddy. الدرس 12 من 29.
تحتاج صفحة تعرض أحدث كتابين إلى النتيجتين الأوليين فقط. وللمؤشر طريقة limit لهذا الغرض. والحد هو عدد المستندات، وليس قيمة حقل.
await books.find().sort({year: 1}).limit(1).toArray();
// [Emma]، أقدم كتابفي مؤشر find، يرتّب MongoDB النتائج قبل وضع الحد، أيًّا كان ترتيب ربط الاستدعاءات. اكتب sort أولًا ليُقرأ الكود بهذا الترتيب. تظل النتيجة مصفوفة حتى عندما يكون الحد 1. إذا كان عدد المستندات المطابقة أقل من الحد، فستُعيد قاعدة البيانات المستندات المتاحة. ولا تُضاف عناصر نائبة فارغة.
قيمة الاستعلام نص: تستخدم Number(input.page) || 1 قيمته العددية، أو 1 إذا كانت مفقودة. تقبل هذه الممارسة أعدادًا صحيحة موجبة.
التحدي
سهلأبقِ الترتيب المزوّد بحيث تظهر الأحدث أولًا. حدِّد النتائج باستخدام input.n من سلسلة الاستعلام؛ واستخدم 2 إذا لم تكن القيمة موجودة. أعد المستندات دون تغيير.
جرّب «العب»: يعيد GET /result?n=2 القيمة Kindred ثم Dune. مع ?n=1، تبقى Kindred وحدها. إذا لم تُحدَّد n، فالقيمة الافتراضية هي نتيجتان. المدخلات أعداد صحيحة موجبة.
جرّب بنفسك
export async function exercise(books, input) {
return await books.find().sort({ year: -1 }).toArray();
}
جميع دروس قواعد البيانات باستخدام MongoDB
تدرّب بنفسك: Playground لـ Express