我有一个包含3个有价值字段的集合(status,userid,sid)
我如何计算每个smtpid和每个状态的行数?
状态字段的值可以是0,1,2或3。
例如:
sid status userid
125 0 200
125 0 213
156 1 154
123 2 584
目的:
sid状态计数
125 0 2
156 1 1
123 2 1
查询获取示例:
{
runCommand : {
aggregate : 'sCollecion',
pipeline : [
{ $match : { time : { '$gte' : '2014-01-01 00:00:00', '$lt' : '2014-01-01 02:00:00' } } },
{ $group : { _id : { StatusID : '$status', SID : '$sid' , UserID : '$userid' } } }
]
}
}
答案 0 :(得分:2)
您只需向“组”管道添加计数即可:
{
$group : {
_id : {
StatusID : '$status',
SID : '$sid',
UserID : '$userid'
},
count : { $sum : 1 }
}
}