Study - mongodb 之 聚合(2)

累加器

累加器本来只能使用与group3.2使group下,但是版本3.2或以上,部分累加器还能使用于project

  • 当在$group中使用时,累加器是针对每个分组使用的
  • 当在$project中使用时,累加器则是针对每个字面量起作用

常用累加器

操作符 简述
$sum 求和操作符,v3.2+可以用于groupgroup或是project
$avg 求均值操作符,v3.2+可以用于groupgroup或是project
$first 用于返回分组的第一个值,只能用于$group
$last 用于返回分组的最后一个值,只能用于$group
$max 用于返回分组的最大值,v3.2+可以用于groupgroup或是project
$min 用于返回分组的最小值,v3.2+可以用于groupgroup或是project
Study - mongodb 之 聚合(2)
  • $sum 求和操作符

    • 使用:

      • $group下使用:

        { $sum: <expression> }

      • $project下使用:

        { $sum: <expression> }
        or
        { $sum: [<expression1>, <expression2> … ] }

    • eg

      • 获取每门课的总分
        Study - mongodb 之 聚合(2)
    • 说明:

      结果
      $sum : <field> } 只含数字
      $sum : <field> } 含数字和非数字
      $sum : <field> } 非数字或不存在
  • $avg 求均值操作符

    • 使用:
      • $group下使用:
        { $avg: <expression> }
      • $project下使用:
        { $avg: <expression> }
        or
        { $avg: [<expression1>, <expression2> … ] }
    • eg
      • 获取每门课的平均分
        Study - mongodb 之 聚合(2)
  • $first 求第一值操作符

    • 使用:
      { $first: <expression>}
    • eg
      Study - mongodb 之 聚合(2)
      Study - mongodb 之 聚合(2)
  • $last 求最后值操作符

    • 使用:
      { $last: <expression> }
    • eg
      Study - mongodb 之 聚合(2)
      Study - mongodb 之 聚合(2)
  • $max 求最大值操作符

    • 使用:
      • $group下使用:

        { $max: <expression> }

      • $project下使用:

        { $max: <expression> }
        or
        { $max: [<expression1>, <expression2> … ] }

    • eg
      • 获取各科目的最高分
        Study - mongodb 之 聚合(2)
  • $min 求最小值操作符

    • 使用:
      • $group下使用:

        { $min: <expression> }

      • $project下使用:

        { $min: <expression> }
        or
        { $min: [<expression1>, <expression2> … ] }

    • eg
      • 获取各科目的最低分
        Study - mongodb 之 聚合(2)

表达式操作符

表达式操作符主要用于在管道中构建表达式时使用,使用类似于函数那样需要参数,主要用于$project操作符中,用于构建表达式

表达式操作符