组内平均值
本课属于 Coddy Node.js 学习旅程的“使用 MongoDB 的数据库”单元。第 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 的数据库中的所有课
自己练习: Express 在线编辑器