MongoDB查询计数

MongoDB查询计数,mongodb,count,Mongodb,Count,我想按month、day和year计算名为appId的字段数 我知道在SQL中,您可以执行以下操作: SELECT COUNT(appID) FROM stats GROUP BY YEAR(record_date), MONTH(record_date), DAY(record_date) 这如何转化为mongodb?我试过这个: { $group : { _id: { month : { $month : "$date" },

我想按
month
day
year
计算名为
appId
的字段数

我知道在SQL中,您可以执行以下操作:

SELECT COUNT(appID)
FROM stats
GROUP BY YEAR(record_date), MONTH(record_date), DAY(record_date)
这如何转化为mongodb?我试过这个:

{
  $group : {
    _id: {      
      month : { $month : "$date" },        
      day : { $dayOfMonth : "$date" },
      year : { $year : "$date" },
    },
    count: { $sum: * } //*all the fields?
  }
}

另外,如果
criticalThreshold
大于
criticalThreshold
,我如何计算
appId
的数量?

您几乎就到了,只需为组中的每个记录加上“1”就可以了

{
  $group : {
    _id: {      
      month : { $month : "$date" },        
      day : { $dayOfMonth : "$date" },
      year : { $year : "$date" },
    },
    count: { $sum: 1 }
  }
}
对于第二个问题,您可能想看看聚合框架:

db.stats.aggregate([ 
{ "$match": { "criticalThreshold": { $gt: "critical" } } },
{ "$group": 
   {
    _id: 
    {      
      month : { $month : "$date" },        
      day : { $dayOfMonth : "$date" },
      year : { $year : "$date" },
    },
    count: { $sum: 1 }
  }
}
])