MongoDB驱动 实现 sum和 avg聚合函数
来源:互联网 发布:c语言 游戏 编程 pdf 编辑:程序博客网 时间:2024/05/29 10:52
MongoDB sum,avg等聚合函数很弱,可以用MapReduce来实现:// ※※※※※※※※※※※※※※※※※※※ 数据加载 ※※※※※※※※※※※※※※※※※※※db.proc.remove();for(var i = 10; i < 1020; i++){db.proc.insert({class:"01", val:i, name: "name" + i})};for(var i = 10; i < 1030; i++){db.proc.insert({class:"02", val:i, name: "name" + i})};for(var i = 10; i < 1040; i++){db.proc.insert({class:"03", val:i, name: "name" + i})};for(var i = 10; i < 1050; i++){db.proc.insert({class:"04", val:i, name: "name" + i})};for(var i = 10; i < 1060; i++){db.proc.insert({class:"05", val:i, name: "name" + i})};for(var i = 10; i < 1070; i++){db.proc.insert({class:"06", val:i, name: "name" + i})};for(var i = 10; i < 1080; i++){db.proc.insert({class:"07", val:i, name: "name" + i})};for(var i = 10; i < 1090; i++){db.proc.insert({class:"08", val:i, name: "name" + i})};for(var i = 10; i < 1100; i++){db.proc.insert({class:"09", val:i, name: "name" + i})};for(var i = 10; i < 1110; i++){db.proc.insert({class:"10", val:i, name: "name" + i})};for(var i = 10; i < 1120; i++){db.proc.insert({class:"11", val:i, name: "name" + i})};// ※※※※※※※※※※※※※※※※※※※ mapReduce ※※※※※※※※※※※※※※※※※※※m = function(){emit(this.class, {count:1, max:this.val, sum:this.val})}r = function(key, values){var ct = 0, sm = 0, mx = 0; for(var i = 0; i < values.length; i++){ct += values[i].count; sm += values[i].max; mx = Math.max(mx, values[i].max);} return {count:ct, max: mx, sum:sm};}// ※※※※※※※※※※※※※※※※※※※ 数据处理 ※※※※※※※※※※※※※※※※※※※res = db.runCommand({mapreduce:"proc", map:m, reduce:r, out:"proc_res"})res = db.runCommand({mapreduce:"proc", map:m, reduce:r, out:"proc_res3", query:{"class":{$gt:"03"}}})res = db.runCommand({mapreduce:"proc", map:m, reduce:r, out:"proc_res5", query:{"class":{$gt:"05"}}})res = db.runCommand({mapreduce:"proc", map:m, reduce:r, out:"proc_res6", query:{"class":{$gt:"06"}}})res = db.runCommand({mapreduce:"proc", map:m, reduce:r, out:"proc_res9", query:{"class":{$gt:"09"}}})res = db.runCommand({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 } }
0 0
- MongoDB驱动 实现 sum和 avg聚合函数
- 用java连接mongodb并执行$sum和$avg结合的聚合函数的实例。
- mysql中group by子句和聚合函数MAX(),MIN(),SUM(),AVG()等的使用
- 聚合函数(sum,count,max,avg等)ZT
- 数据库 SUM + AVG 等聚合函数 结果为NULL 处理
- HQL中的聚合函数:count()sum()avg()max()min()
- oracle中的聚合函数count、max、min、sum、avg等等
- mongodb 中max、min、sum、avg等函数用法
- 在oracle的聚合函数(sum、avg等)中使用NVL函数,强迫加入空值
- oracle中的聚合函数count、max、min、sum、avg以及NVL函数的用法
- 聚合查询的用法(当有sum/avg)这些函数时的用法
- 聚合函数(sum、count、max、min、avg)、where、group by、having的组合用法实例
- Hive分析窗口函数之SUM,AVG,MIN和MAX
- ORACLE聚合函数avg()注意点
- 在MongoDB中实现聚合函数
- 在oracle的聚合函数(sum、avg等)中使用group by来分组你的结果
- 6.10、提取extract、与聚合(sum、aggregate、avg)
- 6.10、提取【extract】、与聚合【sum、aggregate、avg】
- ffplay播放器移植VC的工程:ffplay for MFC
- 常见的CPU访问引起的内存保护问题为什么只用event_122上报 - 1
- luasocket 安装遇到的有关问题
- Android ViewPager使用详解
- 初识Swift
- MongoDB驱动 实现 sum和 avg聚合函数
- Python1
- 数据库主键设计
- 参考文献格式——收藏之
- 求助???
- OCP 1Z0 052 6
- 管理TEMP数据
- linux上安装ORACLE_10.2.0提示缺少系统安装包libXp.so.6,调用jdk报错
- javaScript表单提交验证