Menu
CoddyTech

المتوسطات داخل المجموعات

جزء من قسم قواعد البيانات باستخدام MongoDB في رحلة Node.js على Coddy. الدرس 22 من 29.

يمكن للمجموعة حساب عدة ملخصات للمستندات الواردة نفسها. يحدد تعبير التجميع السجلات التي تنتمي إلى المجموعة نفسها؛ ويحسب كل مُجمِّع حقل إخراج منفصلًا.

{$group: {
    _id: '$team',
    players: {$sum: 1},
    averageScore: {$avg: '$score'}
}}

إذا سجّل لاعبان في الفريق نفسه 8 و12، فإن قيمة players هي 2 وقيمة averageScore هي 10. تقرأ '$score' الموضوعة بين علامتي اقتباس النتيجة من كل لاعب وارد. طبّق الفكرة نفسها على سنوات الكتب. اختيار اسم حقل الإخراج يعود إليك؛ ويحدّد مرجع الحقل القيم التي سيُحسب متوسطها.

challenge icon

التحدي

سهل

هذا مشروع تدريبي صغير. تم توفير الإعداد؛ عدّل 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

تدرّب بنفسك: Playground لـ Express