由sum mongodb分组

Con*_*son 2 mongodb

这是我的旧MySQL查询.

SELECT Count(`status`) as amt, `status` 
FROM (`users`) 
GROUP BY `status`
Run Code Online (Sandbox Code Playgroud)

这将返回类似的东西

+---------+----------+
| amt     | status   |
+---------+----------+
| 3       |        0 |
| 210     |        1 |
| 330     |        2 |
| 4233    |        3 | 
| 540085  |        4 |
+---------+----------+
Run Code Online (Sandbox Code Playgroud)

这似乎是有史以来最基本的Mongo查询,但经过多次尝试使用$group然后告诉使用$aggregate我仍然没有运气.

db.users.aggregate([ { 
    $group: { 
        _id: "$status", 
        amt: { $status: 1 }
    } 
} ] )
Run Code Online (Sandbox Code Playgroud)

我认为这可以用作选择状态字段,但由于我包含了$,它将通过`amt:{$ status:1}计算这些分组查询的数量.

但我的回答只是

{ "result" : [ ], "ok" : 1 }
Run Code Online (Sandbox Code Playgroud)

所以半工作?但没有返回任何东西.我认为这就是这个_id部分的用途.

我跟随这个例子:http://docs.mongodb.org/manual/reference/aggregation/group/

Joh*_*yHK 10

你很接近,但你需要使用$sum运算符来计算分组数:

db.users.aggregate([ { 
    $group: { 
        _id: "$status", 
        amt: { $sum: 1 }
    } 
} ] )
Run Code Online (Sandbox Code Playgroud)