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 聚合管道中的一个运算符,用于计算指定字段的平均值。该运算符常用于统计分析中的数据计算。在实际应用中,我们可以结合其他运算符,进行更加复杂的数据处理和分析。