这是我的旧MySQL查询。
SELECT Count(`status`) as amt, `status`
FROM (`users`)
GROUP BY `status`
会返回类似
的内容+---------+----------+
| amt | status |
+---------+----------+
| 3 | 0 |
| 210 | 1 |
| 330 | 2 |
| 4233 | 3 |
| 540085 | 4 |
+---------+----------+
这似乎是最基本的Mongo查询,但经过多次尝试使用$group
然后被告知使用$aggregate
我仍然没有运气。
db.users.aggregate([ {
$group: {
_id: "$status",
amt: { $status: 1 }
}
} ] )
我认为这可以用作选择状态字段,但由于我包含了$,它会通过`amt:{$ status:1}计算这些分组查询的数量
但我的回答只是
{ "result" : [ ], "ok" : 1 }
所以半成品?但没有返回任何东西。我认为这就是_id
部分的用途。
我关注的是这个例子:http://docs.mongodb.org/manual/reference/aggregation/group/
答案 0 :(得分:9)
您已关闭,但您需要使用$sum
运算符来计算分组数:
db.users.aggregate([ {
$group: {
_id: "$status",
amt: { $sum: 1 }
}
} ] )