我有以下mysql語句,但我想用它與java的spring mongodb驅動程序。如何轉換它?看過聚合但不知道如何。在MongoDB中計數語句
SELECT SUM(CASE WHEN CreatedTime BETWEEN ('7:00:00' AND '7:14:59') THEN 1 ELSE 0) as firstCount,
SUM(CASE WHEN CreatedTime BETWEEN ('7:15:00' AND '7:29:59') THEN 1 ELSE 0) as secondCount,
FROM MyTable
Where username='Jim'
蒙戈文件:使用彈性數據將其轉換成Java的
{ _id: ObjectId("5asd3ea3402984ca53"), username: "Jim", comment: "hi", CreatedTime: ISODate("2014-10-15T16:39:26.870Z") }
UPDATE:
當調用getTemplate().executeCommand(match);
我得到這個:
{ "serverUsed" : "xxxxxxx" , "ok" : 0.0 , "errmsg" : "no such cmd: $match" , "bad cmd" : {
"$match" : { "username" : "Jim"} ,
"$group" : {
"firstCount" : {
"$sum" : {
"$cond" : {
"if" : {
"$and" : [ [ { "$gte" : { "$CreatedTime" : { "$date" : "2014-09-20T16:02:10.924Z"}}} , 1 , 0] ,
[ { "$lte" : { "$CreatedTime" : { "$date": "2014-10-20T15:48:19.744Z"}}} , 1 , 0]]} ,
"then" : { "$ifTrue" : 1} ,
"else" : { "$else" : 0}
}
}
}
}}}
代碼,我用來獲取JSON的是here(它相當長).Query看起來與@Wizard建議的一樣。
$ match有什麼麻煩?我在Stackoverflow的某個地方讀到了舊版本的mongodb不支持$匹配,但我有2014年8月發佈,所以不能這樣。
只是一個蒙戈外殼查詢也會清楚的事情了一下。 – user3960875 2014-10-20 11:37:48