المتوسطات داخل المجموعات
جزء من قسم قواعد البيانات باستخدام MongoDB في رحلة Node.js على Coddy. الدرس 22 من 29.
يمكن للمجموعة حساب عدة ملخصات للمستندات الواردة نفسها. يحدد تعبير التجميع السجلات التي تنتمي إلى المجموعة نفسها؛ ويحسب كل مُجمِّع حقل إخراج منفصلًا.
{$group: {
_id: '$team',
players: {$sum: 1},
averageScore: {$avg: '$score'}
}}إذا سجّل لاعبان في الفريق نفسه 8 و12، فإن قيمة players هي 2 وقيمة averageScore هي 10. تقرأ '$score' الموضوعة بين علامتي اقتباس النتيجة من كل لاعب وارد. طبّق الفكرة نفسها على سنوات الكتب. اختيار اسم حقل الإخراج يعود إليك؛ ويحدّد مرجع الحقل القيم التي سيُحسب متوسطها.
التحدي
سهلهذا مشروع تدريبي صغير. تم توفير الإعداد؛ عدّل exercise.js فقط.
جمّع الكتب حسب النوع وأعِد _id والعدد وaverageYear. رتّب الناتج تصاعديًا حسب _id. شغّل: classic لديه عدد 1 وaverageYear يساوي 1815؛ وscifi لديه عدد 2 وaverageYear يساوي 1972.
جرّب بنفسك
export async function exercise(books) {
return await books
.aggregate([{ $group: { _id: '$genre', count: { $sum: 1 } } }, { $sort: { _id: 1 } }])
.toArray();
}
جميع دروس قواعد البيانات باستخدام MongoDB
3التجميع
عدّ المستنداتمسار من المراحلالتجميع باستخدام $groupالمتوسطات داخل المجموعاتتصفية نتائج المجموعاتمسارات التجميعالربط باستخدام $lookupتدرّب بنفسك: Playground لـ Express