* 몽고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 }
  }
 )

※ " 와 :  를 주의하여 작성할것

+ Recent posts