在MongoDB中查询计数行(JasperSoft)

时间:2014-01-28 13:20:02

标签: mongodb jasper-reports

我有一个包含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'  } } }  
                    ]  
                }  
}

1 个答案:

答案 0 :(得分:2)

您只需向“组”管道添加计数即可:

{
    $group : {
        _id : {
            StatusID : '$status',
            SID : '$sid',
            UserID : '$userid'
        },
        count : { $sum : 1 }
    }
}