博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB 使用mapreduce完成数据迭代
阅读量:5986 次
发布时间:2019-06-20

本文共 2646 字,大约阅读时间需要 8 分钟。

hot3.png

 

文档结构:

Spcode SpnameConsignidConsnameRegionRegionnameServiceidServicenameSrctermidLogtime

>每天要做两次分组

#SQL#天分组SELECT Spcode, Spname, Consignid, Consname, Region, Regionname, Serviceid, Servicename, Srctermid FROM mo_log_201208 WHERE Logtime > "20120823" AND Logtime < "20120824" GROUP BY Spcode, Spname, Consignid, Consname, Region, Regionname, Serviceid, Servicename

#MongoDB#天分组res = db.runCommand({	mapreduce:'mo_log_201208',	query:{Logtime:{$gte:'20120823', $lte:'20120824'}},	map:function() {		emit({Spcode:this.Spcode, Spname:this.Spname,                 Consignid:this.Consignid, Consname:this.Consname,                 Region:this.Region, Regionname:this.Regionname,                 Serviceid:this.Serviceid,                    Servicename:this.Servicename,                 Srctermid:this.Srctermid}, {count:1});	},	reduce:function(key, value) {		var ret = {count:0};		ret.count++;		return ret;	},	out:'tmp_mo_spcode_consignid_region_serviceid_201208_1',	verbose:true})

#SQL#月分组SELECT Spcode, Spname, Consignid, Consname, Region, Regionname, Serviceid, Servicename, Srctermid FROM mo_log_201208 GROUP BY Spcode, Spname, Consignid, Consname, Region, Regionname, Serviceid, Servicename

 

#MongoDB#月分组res = db.runCommand({	mapreduce:'mo_log_201208',	map:function() {		emit({Spcode:this.Spcode, Spname:this.Spname,                 Consignid:this.Consignid, Consname:this.Consname,                 Region:this.Region, Regionname:this.Regionname,                 Serviceid:this.Serviceid, Servicename:this.Servicename,                 Srctermid:this.Srctermid}, {count:1});	},	reduce:function(key, value) {		var ret = {count:0};		ret.count++;		return ret;	},	out:'tmp_mo_spcode_consignid_region_serviceid_201208',	verbose:true})

 >随着每天数据量的不断增长, 月分组的执行时间会不断的增加~~

 >为了减少重复的分组操作, 降低分组时间, 用天分组的数据来迭代月分组的数据

#MongoDBres = db.runCommand({	mapreduce:'mo_log_201208',	query:{Logtime:{$gte:'20120823', $lte:'20120824'}},	map:function() {		emit({Spcode:this.Spcode, Spname:this.Spname,         Consignid:this.Consignid, Consname:this.Consname,         Region:this.Region, Regionname:this.Regionname,         Serviceid:this.Serviceid, Servicename:this.Servicename,         Srctermid:this.Srctermid}, {count:1});	},	reduce:function(key, value) {		var ret = {count:0};		ret.count++;		return ret;	},	finalize:function(key, value){		db.tmp_mo_spcode_consignid_region_serviceid_201208.insert({"_id":key, "value":value});		return value;	},	out:'tmp_mo_spcode_consignid_region_serviceid_201208_1',	verbose:true})

>Mongodb缺省的主键是_id, 在使用insert或者save的时候, 不会产生重复数据

>insert和save的区别是
    >>insert:当主键重复的时候, 放弃操作
    >>save:当主键重复的时候,执行更新操作

转载于:https://my.oschina.net/huzorro/blog/75060

你可能感兴趣的文章
hp警告Creating default object from empty value 问题的解决方法
查看>>
C#游戏开发中快速的游戏循环
查看>>
如何高效快捷检索得到核心文献?
查看>>
使用MVC写模式jsp连接到数据库操作
查看>>
模拟电路创新设计
查看>>
MD5的加密和解密(总结)
查看>>
锁_rac环境kill锁表会话后出现killed状态(解决)
查看>>
win10安装blueCFD
查看>>
C# 计算两个字符串的相似度
查看>>
linux 遇见错误Could not get lock /var/lib/dpkg/lock
查看>>
MySQLdump常用命令
查看>>
如何才能正确的关闭Socket连接
查看>>
MongoDB基本操作
查看>>
[转]微擎(微赞)学习之 -- 模块开发:目录结构
查看>>
css 手机适配
查看>>
5个界面效果很炫的JavaScript UI框架
查看>>
根据标准word模板生成word文档类库(开源)
查看>>
Html网页表格结构化标记的应用
查看>>
数据结构和算法 (二)数据结构基础、线性表、栈和队列、数组和字符串
查看>>
二叉树的层序遍历算法实现
查看>>