在MongoDB中查询计数行(JasperSoft) [英] Query in MongoDB for count rows (JasperSoft)

查看:111
本文介绍了在MongoDB中查询计数行(JasperSoft)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含3个有价值字段的集合(status,userid,sid)。

我如何计算每个smtpid和每个状态的行数?

状态字段的值可以是0,1,2或3.

I've an collection with 3 valuable fields (status, userid, sid).
How can i count rows for each smtpid and each status?
The status field can have values 0,1,2 or 3.

例如:

sid status userid

125 0 200

125 0 213

156 1 154

123 2 584

For example:
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

Purpose:
sid status count
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'  } } }  
                    ]  
                }  
}


推荐答案

您只需在组管道中添加一个计数:

You can simply add a count to your 'group' pipeline:

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

这篇关于在MongoDB中查询计数行(JasperSoft)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆