當前位置:編程學習大全網 - 源碼下載 - MongoDB驅動程序實現sum和avg聚合函數

MongoDB驅動程序實現sum和avg聚合函數

聚合函數如MongoDB sum,avg AVG比較弱,可以用MapReduce實現。我給妳舉個例子。

※//※※※※※※※※※※數據加載※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※數據加載※

db . proc . remove();

for(var I = 10;我& lt1020;i++){ db . proc . insert({ class:" 01 ",val:i,name:" name "+I })};

for(var I = 10;我& lt1030;i++){db.proc.insert({class:"02 ",val:i,name:" name "+I })};

for(var I = 10;我& lt1040;i++){db.proc.insert({class:"03 ",val:i,name:" name "+I })};

for(var I = 10;我& lt1050;i++){db.proc.insert({class:"04 ",val:i,name:" name "+I })};

for(var I = 10;我& lt1060;i++){db.proc.insert({class:"05 ",val:i,name:" name "+I })};

for(var I = 10;我& lt1070;i++){db.proc.insert({class:"06 ",val:i,name:" name "+I })};

for(var I = 10;我& lt1080;i++){db.proc.insert({class:"07 ",val:i,name:" name "+I })};

for(var I = 10;我& lt1090;i++){db.proc.insert({class:"08 ",val:i,name:" name "+I })};

for(var I = 10;我& lt1100;i++){db.proc.insert({class:"09 ",val:i,name:" name "+I })};

for(var I = 10;我& lt1110;i++){ db . proc . insert({ class:" 10 ",val:i,name:" name "+I })};

for(var I = 10;我& lt1120;i++){ db . proc . insert({ class:" 11 ",val:i,name:" name "+I })};

※ mapReduce,mapReduce,mapReduce,mapReduce

m = function(){emit(this.class,{count:1,max:this.val,sum:this.val})}

r =函數(鍵,值){

var ct = 0,sm = 0,MX = 0;

for(var I = 0;我& ltvalues .長度;i++){

ct +=值[i]。數數;

sm +=值[i]。max

mx = Math.max(mx,values[i])。max);

}

return {count:ct,max: mx,sum:sm };

}

※//※※※※※※※※※※※※※※※※※※※※※※※※※※※※※數據處理※

RES = db . run command({ MapReduce:" proc ",map:m,reduce:r,out:"proc_res"})

RES = db . run command({ MapReduce:" proc ",map:m,reduce:r,out:"proc_res3 ",query:{"class":{$gt:"03"}})

RES = db . run command({ MapReduce:" proc ",map:m,reduce:r,out:"proc_res5 ",query:{"class":{$gt:"05"}})

RES = db . run command({ MapReduce:" proc ",map:m,reduce:r,out:"proc_res6 ",query:{"class":{$gt:"06"}})

RES = db . run command({ MapReduce:" proc ",map:m,reduce:r,out:"proc_res9 ",query:{"class":{$gt:"09"}})

RES = db . run command({ MapReduce:" proc ",map:m,reduce:r,out:"proc_res10 ",query:{ " class ":{ $ gt:" 10 " } })

//※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※.

db.proc_res.find()

{ "_id" : 1," value" : { "class" : 1," count" : 10," sum" : 145," max" : 19 } }

{ "_id" : 2," value" : { "class" : 2," count" : 20," sum" : 390," max" : 29 } }

{ "_id" : 3," value" : { "class" : 3," count" : 30," sum" : 735," max" : 39 } }

{ "_id" : 4," value" : { "class" : 4," count" : 40," sum" : 1180," max" : 49 } }

{ "_id" : 5," value" : { "class" : 5," count" : 50," sum" : 1725," max" : 59 } }

{ "_id" : 6," value" : { "class" : 6," count" : 60," sum" : NaN," max" : NaN } }

{ "_id" : 7," value" : { "class" : 7," count" : 70," sum" : 3115," max" : 79 } }

{ "_id" : 8," value" : { "class" : 8," count" : 80," sum" : NaN," max" : NaN } }

{ "_id" : 9," value" : { "class" : 9," count" : 90," sum" : NaN," max" : NaN } }

{ "_id" : 10," value" : { "class" : 10," count" : 100," sum" : NaN," max" : NaN } }

{ "_id" : 11," value" : { "class" : 11," count" : 110," sum" : NaN," max" : NaN } }

db.proc_res3.find()

{ "_id" : 4," value" : { "class" : 4," count" : 40," sum" : 1180," max" : 49 } }

{ "_id" : 5," value" : { "class" : 5," count" : 50," sum" : 1725," max" : 59 } }

{ "_id" : 6," value" : { "class" : 6," count" : 60," sum" : NaN," max" : NaN } }

{ "_id" : 7," value" : { "class" : 7," count" : 70," sum" : NaN," max" : NaN } }

{ "_id" : 8," value" : { "class" : 8," count" : 80," sum" : 3960," max" : 89 } }

{ "_id" : 9," value" : { "class" : 9," count" : 90," sum" : 4905," max" : 99 } }

{ "_id" : 10," value" : { "class" : 10," count" : 100," sum" : NaN," max" : NaN } }

{ "_id" : 11," value" : { "class" : 11," count" : 110," sum" : NaN," max" : NaN } }

db.proc_res5.find()

{ "_id" : 6," value" : { "class" : 6," count" : 60," sum" : 2370," max" : 69 } }

{ "_id" : 7," value" : { "class" : 7," count" : 70," sum" : NaN," max" : NaN } }

{ "_id" : 8," value" : { "class" : 8," count" : 80," sum" : NaN," max" : NaN } }

{ "_id" : 9," value" : { "class" : 9," count" : 90," sum" : 4905," max" : 99 } }

{ "_id" : 10," value" : { "class" : 10," count" : 100," sum" : 5950," max" : 109 } }

{ "_id" : 11," value" : { "class" : 11," count" : 110," sum" : NaN," max" : NaN } }

db.proc_res6.find()

{ "_id" : 7," value" : { "class" : 7," count" : 70," sum" : 3115," max" : 79 } }

{ "_id" : 8," value" : { "class" : 8," count" : 80," sum" : NaN," max" : NaN } }

{ "_id" : 9," value" : { "class" : 9," count" : 90," sum" : NaN," max" : NaN } }

{ "_id" : 10," value" : { "class" : 10," count" : 100," sum" : NaN," max" : NaN } }

{ "_id" : 11," value" : { "class" : 11," count" : 110," sum" : NaN," max" : NaN } }

db.proc_res9.find()

{ "_id" : 10," value" : { "class" : 10," count" : 100," sum" : 5950," max" : 109 } }

{ "_id" : 11," value" : { "class" : 11," count" : 110," sum" : NaN," max" : NaN } }

db.proc_res10.find()

{ "_id" : 11," value" : { "class" : 11," count" : 110," sum" : NaN," max" : NaN } }

  • 上一篇:QQ和360究竟誰對誰錯
  • 下一篇:尋找兒童抽動障礙的治療方法
  • copyright 2024編程學習大全網