如何在 MongoDB 中获得简单的计数和分组?

Posted

技术标签:

【中文标题】如何在 MongoDB 中获得简单的计数和分组?【英文标题】:how to get simple count & group by in MongoDB? 【发布时间】:2022-01-19 23:07:36 【问题描述】:

假设我有一个包含两个类别的数据,例如 - 足球或篮球,其中足球值为 1,篮球值为 2,我们有以下数据:

_id    game
'1'      1
'2'      1
'3'      2
'4'      1
'5'      2

(数据包含 3 次足球和 2 次篮球)。 我想执行返回以下对象的聚合:


   footballCount: 3,
   basketballCount: 2

我想不出这样的聚合会导致这样的结构。 我该怎么做?

【问题讨论】:

this conditional sum 你在找什么吗? 【参考方案1】:

您可以针对不同的情况进行条件求和。

db.collection.aggregate([
  
    $group: 
      _id: null,
      footballCount: 
        $sum: 
          "$cond": 
            "if": 
              $eq: [
                "$game",
                1
              ]
            ,
            "then": 1,
            "else": 0
          
        
      ,
      basketballCount: 
        $sum: 
          "$cond": 
            "if": 
              $eq: [
                "$game",
                2
              ]
            ,
            "then": 1,
            "else": 0
          
        
      
    
  
])

这是Mongo playground 供您参考。

【讨论】:

以上是关于如何在 MongoDB 中获得简单的计数和分组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在mongodb querybuilder中“分组”字段“计数”?

如何在没有任何统计数据(如 Pandas 中的平均值或计数)的情况下进行简单分组?

在同一个mongodb查询中选择按计数和不同计数分组

按月对记录进行分组并计数 - Mongoose、nodeJs、mongoDb

如何在使用“融化”分组的seaborn计数图上获得高于柱的值

MongoDB计数按数组元素分组的数组中的匹配字符串