* 몽고DB에서 group by (단순)
sql | 몽고DB |
select basetime, count(basetime) as csum from fileinfos group by basetime |
db.fileinfos.group( { key : {basetime:true}, reduce: function(obj, prev) { prev.csum += 1; }, initial: { csum: 0 } }); |
* 몽고DB에서 group by (그룹대상 필드 가공하여 group by)
sql | 몽고DB |
select basetime, count(basetime) as csum from fileinfos group by substr(basetime,1, 6) |
db.fileinfos.group( { keyf: function(obj) {return { basetime : obj.basetime.substr(0,6) };}, reduce: function(obj, prev) { prev.csum += 1; }, initial: { csum: 0 } }); |
* mongoid를 이용해서 (ROR)에서 할때 참고
@grouptest = Fileinfo.collection.group(
{ :keyf=> "function(obj) {return { basetime : obj.basetime.substr(0,6) };}",
:reduce=> "function(obj, prev) { prev.csum += 1; }",
:initial=> { csum: 0 }
}
)
{ :keyf=> "function(obj) {return { basetime : obj.basetime.substr(0,6) };}",
:reduce=> "function(obj, prev) { prev.csum += 1; }",
:initial=> { csum: 0 }
}
)
※ " 와 : 를 주의하여 작성할것