MongoDB $avg 运算符介绍
MongoDb $avg
聚合管道运算符用于计算某个字段的平均值。该运算符只能用于聚合管道中。
语法
MongoDb $avg
运算符的语法如下:
{
$avg: "<field>"
}
其中,<field>
是要计算平均值的字段名称,可以是任意有效的字段名称。
使用场景
MongoDb $avg
运算符常用于以下场景:
- 计算某个字段的平均值;
- 用于统计分析中的数据计算。
实例
下面是 $avg
运算符的几个示例。
示例 1
假设我们有以下数据:
{ "name": "Alice", "age": 20 }
{ "name": "Bob", "age": 30 }
{ "name": "Charlie", "age": 25 }
{ "name": "David", "age": 35 }
{ "name": "Eva", "age": 28 }
我们想要计算 age
字段的平均值,可以使用以下聚合管道:
db.people.aggregate([{ $group: { _id: null, averageAge: { $avg: "$age" } } }])
执行上述聚合管道后,将返回以下结果:
{ "_id" : null, "averageAge" : 27.6 }
示例 2
假设我们有以下数据:
{ "name": "Alice", "age": 20, "score": 85 }
{ "name": "Bob", "age": 30, "score": 90 }
{ "name": "Charlie", "age": 25, "score": 80 }
{ "name": "David", "age": 35, "score": 95 }
{ "name": "Eva", "age": 28, "score": 87 }
我们想要计算 score
字段的平均值,可以使用以下聚合管道:
db.people.aggregate([
{ $group: { _id: null, averageScore: { $avg: "$score" } } }
])
执行上述聚合管道后,将返回以下结果:
{ "_id" : null, "averageScore" : 87.4 }
示例 3
假设我们有以下数据:
{ "name": "Alice", "age": 20, "score": 85, "subject": "math" }
{ "name": "Bob", "age": 30, "score": 90, "subject": "math" }
{ "name": "Charlie", "age": 25, "score": 80, "subject": "history" }
{ "name": "David", "age": 35, "score": 95, "subject": "math" }
{ "name": "Eva", "age": 28, "score": 87, "subject": "history" }
我们想要计算 score
字段在每个科目中的平均值,可以使用以下聚合管道:
db.people.aggregate([
{ $group: { _id: "$subject", averageScore: { $avg: "$score" } } }
])
执行上述聚合管道后,将返回以下结果:
{ "_id" : "history", "averageScore" : 83.5 }
{ "_id" : "math", "averageScore" : 90 }
结论
MongoDb $avg
运算符是 MongoDB 聚合管道中的一个运算符,用于计算指定字段的平均值。该运算符常用于统计分析中的数据计算。在实际应用中,我们可以结合其他运算符,进行更加复杂的数据处理和分析。