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, את count ואת averageYear. מיינו את הפלט לפי _id בסדר עולה. הריצו: ל-classic יש count של 1 ו-averageYear של 1815; ל-scifi יש count של 2 ו-averageYear של 1972.

נסו בעצמכם

export async function exercise(books) {
    return await books
        .aggregate([{ $group: { _id: '$genre', count: { $sum: 1 } } }, { $sort: { _id: 1 } }])
        .toArray();
}

כל השיעורים ביחידה מסדי נתונים עם MongoDB

תרגלו בעצמכם: Express אונליין