资源描述:
《SQL-to-MongoDB.pdf》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、mySQLMongoDBSELECTdb.runCommand({Dim1,Dim2,1mapreduce:"DenormAggCollection",SUM(Measure1)ASMSum,query:{2COUNT(*)ASRecordCount,filter1:{'$in':['A','B']},AVG(Measure2)ASMAvg,3filter2:'C',MIN(Measure1)ASMMinfilter3:{'$gt':123}MAX(CASE},WHENMeasure2<1004map:function(
2、){emit(THENMeasure2{d1:this.Dim1,d2:this.Dim2},END)ASMMax{msum:this.measure1,recs:1,mmin:this.measure1,FROMDenormAggTablemmax:this.measure2<100?this.measure2:0}WHERE(Filter1IN(’A’,’B’)));},AND(Filter2=‘C’)5reduce:function(key,vals){AND(Filter3>123)varret={msum:0,
3、recs:0,mmin:0,mmax:0};GROUPBYDim1,Dim21for(vari=0;i0)ret.msum+=vals[i].msum;ORDERBYRecordCountDESCret.recs+=vals[i].recs;LIMIT4,8if(vals[i].mminret.mmax))ret.mmax=v
4、als[i].mmax;}1Groupeddimensioncolumnsarepulledreturnret;outaskeysinthemapfunction,},reducingthesizeoftheworkingset.6finalize:function(key,val){2Measuresmustbemanuallyaggregated.7val.mavg=val.msum/val.recs;returnval;3Aggregatesdependingonrecordcounts},mustwaitunti
5、lfinalization.out:'result1',4Measurescanuseprocedurallogic.verbose:true5FiltershaveanORM/ActiveRecord-});lookingstyle.db.result1.6Aggregatefilteringmustbeappliedtofind({mmin:{'$gt':0}}).theresultset,notinthemap/reduce.sort({recs:-1}).7Ascending:1;Descending:-1ski
6、p(4).limit(8);Revision4,Created2010-03-06RickOsborne,rickosborne.org