【问题标题】:How to get the average of an array and round the result in MongoDB如何获取数组的平均值并对MongoDB中的结果进行四舍五入
【发布时间】:2022-01-21 17:33:56
【问题描述】:

我想将平均结果四舍五入到小数点后 2 位,但我的代码不起作用,我找不到任何解决方法。

db.customers.aggregate([
{
    $group: {
      _id: "$customer.gender",
      "average age": {
        $avg: {
          $round: [
            "$customer.age",
            2
          ]
        }
      }
    }
}])

【问题讨论】:

  • 为清楚起见,您能否编辑您的问题并添加示例输入文档和您寻求的输出形状?
  • 是的,我会看看如何优化问题

标签: mongodb


【解决方案1】:

年龄没有小数位,所以我想您想在分组后对平均值进行四舍五入,如下所示,使用阶段运算符 $set 添加新字段。 ($set=$addFields)

db.customers.aggregate([
  {
    $group: {
      _id: "$customer.gender",
      "average age": {
        $avg: "$customer.age"
      }
    }
  },
  {
    "$set": {
      "average age": {
        "$round": [
          "$average age",
          2
        ]
      }
    }
  }
])

【讨论】:

  • 现在可以使用了,非常感谢。
猜你喜欢
  • 1970-01-01
  • 2010-09-06
  • 1970-01-01
  • 2019-07-02
  • 2011-05-09
  • 2021-03-25
  • 1970-01-01
  • 2020-12-27
相关资源
最近更新 更多