如何获取数组的平均值并对MongoDB中的结果进行四舍五入

Posted

技术标签:

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

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

db.customers.aggregate([

    $group: 
      _id: "$customer.gender",
      "average age": 
        $avg: 
          $round: [
            "$customer.age",
            2
          ]
        
      
    
])

【问题讨论】:

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

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

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

【讨论】:

现在可以使用了,非常感谢。

以上是关于如何获取数组的平均值并对MongoDB中的结果进行四舍五入的主要内容,如果未能解决你的问题,请参考以下文章

如何抓取多条路径并对它们进行排序并将结果带回firebase?

如何从mongodb中的嵌套数组中获取值

我如何确定 mongodb 是不是返回空结果

如何从 mongodb 查询和获取数组中的一项?

如何仅获取数组中的元素-mongodb [重复]

MongoDB。如何更新数组内的json属性