我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mongodb中使用mapreduce进行分组统计

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mongodb中使用mapreduce进行分组统计

最近在统计某一个时间段的url去重数,由于数据量巨大导致报错,提示:

distinct failed: {
"errmsg" : "exception: distinct too big, 16mb cap",
"code" : 17217,
"ok" : 0
} at class="lazy" data-src/mongo/shell/collection.js:1108

最终通过mapreduce来解决如下:

//定义map函数
map=function(){
    emit(this.url,{"count":1});
}
//定义reduce函数
reduce=function(key,values){
    var total=0;
    for(var i=0; i < values.length; i++){
        total+=values[i].count;
    }
    return {count:total}
}
//执行mapreduce函数,其中out的值是存储执行结果的集合
db.runCommand({"mapreduce":"visit","map":map,"reduce":reduce,"query":{"vtime":{"$gte":1412611200,"$lte":1413907119}},"out":"test.tmp"});

关于mapreduce的选项解释如下:

"out":{replace:"collection name"} -- mapreduce输出结果会替换掉原来的collection,collection不存在则创建
"out":{merge:"collection name"} -- 将新老数据进行合并,新的替换旧的,没有的添加进去
"out":{reduce:"collection name"}-- 存在老数据时,在原来的基础上加新的数据(即new value=old value+mapreduce value)
"out":{inline:1} -- 不会创建collection,结果保存在内存里面,只限于结果小于16MB的情况


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mongodb中使用mapreduce进行分组统计

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么使用Mongodb进行分析

要使用Mongodb进行分析,需要按照以下步骤进行操作:1. 安装Mongodb数据库:首先,需要安装Mongodb数据库,并将其设置为运行状态。可以从Mongodb官方网站下载适合您操作系统的安装程序,并按照官方文档中的说明进行安装。2.
2023-08-23

spark中如何使用groupByKey进行分组排序

今天小编给大家分享一下spark中如何使用groupByKey进行分组排序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。任务
2023-07-05

SQL进行排序、分组、统计的10个新技巧分享

这篇文章介绍了SQL进行排序、分组、统计的10个新技巧,有需要的朋友可以参考一下
2022-11-15

MongoDB中怎么使用统计count()方法

这篇文章将为大家详细讲解有关MongoDB中怎么使用统计count()方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在MongoDB中对于大量的数据,可以使用count()方法对数据进行统计,得到某个
2023-06-14

Go中怎么使用MongoDB进行数据查询

这篇文章主要讲解了“Go中怎么使用MongoDB进行数据查询”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Go中怎么使用MongoDB进行数据查询”吧!首先,我们需要安装“mgo” Go-M
2023-07-05

spark中使用groupByKey进行分组排序的示例代码

这篇文章主要介绍了spark中使用groupByKey进行分组排序的实例代码,本文通过实例代码给大家讲解的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-03-09

怎么在NestJs中使用Mongoose对MongoDB进行操作

这篇文章主要介绍了怎么在NestJs中使用Mongoose对MongoDB进行操作,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!首先是安装所需依赖npm install --save @nestjs/m
2023-06-06

PHP 数组分组函数在统计分析中的应用

使用 php 的 array_group_by() 函数可以对数组中的数据进行分组,从而方便进行统计分析,包括:分组后,可以通过 array_map() 函数计算每个组中的元素数量。还可以通过自定义回调函数找出每个组中具有最大值的元素。通过
PHP 数组分组函数在统计分析中的应用
2024-05-02

如何运用bootice对磁盘进行分区?win7系统中使用bootice进行分区的方法

Win7系统中如何使用bootice进行磁盘http://www.cppcns.com分区?日常我们给电脑安装上win7系统后为了方便对文件的管理,需编程客栈要对磁盘进行分区,此时分区的方法有很多种:比如使用bootice对磁盘进行分区,此
2023-05-23

编程热搜

目录