2013-11-26 3 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, фактически являются датой. Я хотел бы использовать группу по функциям на первых четырех цифрах, которые являются годом. Есть ли способ сделать это в MongoDB? Я смог сделать это в MySQL, сначала включив его в строку, а затем подстроку и группу подгруппировки. Но для обработки данных MySQL много данных.Группа MongoDB по части Целочисленного значения

Любая помощь будет оценена по достоинству.

ответ

2
db.collection.aggregate({$project:{year:{$substr:["$data",0,4]}}}, 
          {$group:{_id:{'y':'$year'},count:{$sum:1}}}) 
Смежные вопросы