2013-11-26 25 views
2
{ 
"_id" : ObjectId("528dd86bd6188ad3e9c0c8ea"), 
"id" : "CA002303986", 
"data" : NumberLong(20000101), 
"element" : "TMAX", 
"value1" : -300, 
"mflag1" : "", 
"qflag1" : "", 
"sfalg1" : "G", 
"lcol" : "" 
} 
{ 
"_id" : ObjectId("528dd86bd6188ad3e9c0c8eb"), 
"id" : "CA002303986", 
"data" : NumberLong(20000101), 
"element" : "TMIN", 
"value1" : -345, 
"mflag1" : "", 
"qflag1" : "", 
"sfalg1" : "G", 
"lcol" : "" 
} 

這是一個NumberLong的字段數據實際上是日期。我想在它的年份的前4位數上使用它的功能。有沒有辦法在MongoDB中做到這一點? 我能夠在MySQL中做到這一點,首先將它轉換爲字符串,然後在該子字符串上獲取子字符串和運行組。但是MySQL有很多數據需要處理。MongoDB組的部分整數值

任何幫助,將不勝感激。

回答

2
db.collection.aggregate({$project:{year:{$substr:["$data",0,4]}}}, 
          {$group:{_id:{'y':'$year'},count:{$sum:1}}})