前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB Map-Reduce函数使用

MongoDB Map-Reduce函数使用

原创
作者头像
玖叁叁
发布2023-04-14 16:01:32
4170
发布2023-04-14 16:01:32
举报
文章被收录于专栏:玖叁叁玖叁叁

Map函数

Map函数用于将集合中的每个文档转换为一个键值对,并将这些键值对作为中间结果传递给Reduce函数。例如:

代码语言:javascript
复制
function map() {
    emit(this.type, this.price);
}

这个Map函数将集合中每个文档的type字段作为键,将price字段作为值,生成一系列键值对。

Reduce函数

Reduce函数用于将Map函数生成的键值对按照键进行分组,并对每个分组的值进行聚合操作,例如求和、平均数等。例如:

代码语言:javascript
复制
function reduce(key, values) {
    var total = 0;
    for (var i = 0; i < values.length; i++) {
        total += values[i];
    }
    return total;
}

这个Reduce函数将Map函数生成的键值对按照键进行分组,并对每个分组的值求和。

执行Map-Reduce

执行Map-Reduce函数的方法为:

代码语言:javascript
复制
db.collection.mapReduce(map, reduce, { out: "result" });

其中map和reduce参数分别为上述定义的Map函数和Reduce函数,out参数指定输出结果的集合名称。

例如,我们可以使用以下命令对orders集合进行Map-Reduce计算:

代码语言:javascript
复制
db.orders.mapReduce(
    function() { emit(this.user_id, this.amount); },
    function(key, values) { return Array.sum(values); },
    { out: "total_amount_by_user" }
)

这个命令将orders集合按照user_id字段进行分组,计算每个用户的订单总金额,并将结果输出到total_amount_by_user集合中。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Map函数
  • Reduce函数
  • 执行Map-Reduce
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档