MongoDB 中的计算

Posted

技术标签:

【中文标题】MongoDB 中的计算【英文标题】:Calculations in MongoDB 【发布时间】:2021-11-19 11:17:34 【问题描述】:

我有类似的东西:

    [

    ....
    a: 100
    b: 60
,

    ....
    a: 130
    b: 40
,

    ....
    a: 120
    b: 60

]

我想计算: sum(a)/sum(b): (350/160) 并将其放入新字段 提前致谢

【问题讨论】:

您可以使用带有聚合管道的更新功能进行更新。有聚合算术运算符来进行计算。 【参考方案1】:

首先你应该使用$group得到所有a和b的总和(按_id:1分组),然后使用$project得到a/b(Mongo Playground):

db.collection.aggregate([
  
    "$group": 
      "_id": 1,
      "sumA": 
        "$sum": "$a"
      ,
      "sumB": 
        "$sum": "$b"
      ,
      
    
  ,
  
    "$project": 
      "aDIVb": 
        "$divide": [
          "$sumA",
          "$sumB"
        ]
      
    
  
])

参考:$group、$sum、$project 和 $divide

【讨论】:

以上是关于MongoDB 中的计算的主要内容,如果未能解决你的问题,请参考以下文章

从 MongoDB 中的 Python 列表中计算值

如何计算嵌入式mongodb文档中的键数

MongoDB - 查询计算数组中的嵌套文档

MongoDb:在没有连接操作的情况下计算其他集合中的文档

我如何计算 mongoDB 中的所有用户和帖子

如何计算另一个数组 MongoDB 中数组中的匹配元素