2013-07-28 60 views
2

這是我的舊MySQL查詢。按總和mongodb

SELECT Count(`status`) as amt, `status` 
FROM (`users`) 
GROUP BY `status` 

這將返回類似

+---------+----------+ 
| amt  | status | 
+---------+----------+ 
| 3  |  0 | 
| 210  |  1 | 
| 330  |  2 | 
| 4233 |  3 | 
| 540085 |  4 | 
+---------+----------+ 

這似乎是最基本的蒙戈的查詢過,但使用$group多次嘗試後,再告知使用$aggregate我仍然沒有運氣。

db.users.aggregate([ { 
    $group: { 
     _id: "$status", 
     amt: { $status: 1 } 
    } 
} ]) 

我想這會工作作爲選擇狀態字段,但因爲我包含在$,它只能算作通過`AMT的那些已分組的查詢量:{$狀態:1}

但我的回覆只是

{ "result" : [ ], "ok" : 1 } 

所以半工作?但沒有返回任何東西。我認爲這就是_id的一部分。

我下面這個例子:http://docs.mongodb.org/manual/reference/aggregation/group/

回答

8

你接近,但你需要使用$sum運營商來算分組:

db.users.aggregate([ { 
    $group: { 
     _id: "$status", 
     amt: { $sum: 1 } 
    } 
} ]) 
+0

科特迪瓦哦 - 感謝:P –