
聚合框架
|
157
{ $project: {
_id: 0,
name: 1,
total_funding: { $sum: "$funding_rounds.raised_amount" }
} }
])
这只是在投射阶段使用累加器的一个尝试。同样,建议你查看
MongoDB
文档中关于聚合
管道的快速参考以获取可用累加器表达式的完整概述。
7.8
分组简介
在
MongoDB
以前的版本中,累加器只能在聚合框架的分组阶段中使用。分组阶段执行的
功能类似于
SQL
中的
GROUP BY
命令。在分组阶段,可以将多个文档的值聚合在一起并对
它们执行某种类型的聚合操作,比如计算平均值。来看一个例子:
db.companies.aggregate([
{ $group: {
_id: { founded_year: "$founded_year" },
average_number_of_employees: { $avg: "$number_of_employees" }
} },
{ $sort: { average_number_of_employees: -1 } }
])
这里,我们使用分组阶段将所有公司根据其成立年份聚合在一起,然后计算每年的平均员
工数。
该管道的输出如下:
{ "_id" : { "founded_year" : 1847 }, "average_number_of_employees" : 405000 }
{ "_id" : { "founded_year" ...