ממוצעים בתוך קבוצות
חלק מהיחידה מסדי נתונים עם 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, את 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
3צבירה
ספירת מסמכיםצינור של שלביםקיבוץ עם $groupממוצעים בתוך קבוצותסינון תוצאות הקיבוץצינורות צבירהצירוף עם $lookupתרגלו בעצמכם: Express אונליין