当前位置: 首页 > news >正文

南宁哪个网络公司建网站好wordpress主题 微软

南宁哪个网络公司建网站好,wordpress主题 微软,wordpress雪人主题,上海环球金融中心观光厅这此之前已经对MongoDB中的一些聚合操作进行了详细的介绍,主要介绍了聚合方法和聚合管道;如果您想对聚合方法和聚合管道进行了解,可以参考: MongoDB 数据库操作汇总https://blog.csdn.net/m1729339749/article/details/130086022…

这此之前已经对MongoDB中的一些聚合操作进行了详细的介绍,主要介绍了聚合方法和聚合管道;如果您想对聚合方法和聚合管道进行了解,可以参考:

MongoDB 数据库操作汇总https://blog.csdn.net/m1729339749/article/details/130086022中的聚合操作。

本篇我们介绍另外一种聚合操作(Map-Reduce),其中Map代表的是文档映射,Reduce代表的是对映射的结果进行计算。

一、准备工作

初始化课程成绩数据

db.subjectScores.insertMany([{ "_id": 1, "name": "张三", "subject": "eng", "score": 80 },{ "_id": 2, "name": "李四", "subject": "eng", "score": 60 },{ "_id": 3, "name": "王五", "subject": "eng", "score": 90 },{ "_id": 4, "name": "张三", "subject": "math", "score": 70 },{ "_id": 5, "name": "李四", "subject": "math", "score": 90 },{ "_id": 6, "name": "王五", "subject": "math", "score": 50 },{ "_id": 7, "name": "张三", "subject": "physics", "score": 80 },{ "_id": 8, "name": "李四", "subject": "physics", "score": 60 },{ "_id": 9, "name": "王五", "subject": "physics", "score": 70 }
])

二、Map-Reduce

语法:

db.collection.mapReduce(<map>,<reduce>,{out: <collection>,query: <document>,sort: <document>,limit: <number>,finalize: <function>,scope: <document>,jsMode: <boolean>,bypassDocumentValidation: <boolean>})

其中,

<map>:代表的是Map函数(JavaScript函数),它可以把每个输入的文档转换成0个或者多个文档。

map函数的格式如下: 

function() {...emit(key, value);
}

可以将map函数理解为分组,其中key代表的是分组的字段;value代表的是需要进行聚合运算的字段。 

<reduce>:代表的是Reduce函数(JavaScript函数)。

reduce函数的格式如下: 

function(key, values) {...return result;
}

可以将reduce函数理解为分组后的聚合运算,其中key代表的是分组的字段,values代表的是需要进行聚合运算的字段对应的所有的字段值。

out:代表的是输出结果到集合或者直接输出,如果直接输出使用inline。

输出结果到集合中:

out: { <action>: <collectionName>[, db: <dbName>] }

 <action>:

        replace:如果集合存在,则替换现有的集合

        merge:如果集合存在,当文档冲突时,则覆盖

        reduce:如果集合存在,当文档冲突时,将reduce函数应用于新文档和现有文档(集合中冲突的文档),并将结果覆盖现有文档;

<collectionName>:集合

<dbName>:数据库

直接输出结果:

out: { inline: 1 }

query:代表的是查询选择器,会将满足条件的文档输入到map函数中

如果您想了解查询选择器,可以参考:

MongoDB 查询文档中使用比较选择器、逻辑选择器icon-default.png?t=N3I4https://blog.csdn.net/m1729339749/article/details/129965699

MongoDB 查询文档中使用元素选择器、数组选择器icon-default.png?t=N3I4https://blog.csdn.net/m1729339749/article/details/129971708

sort:代表的是对输入的文档进行排序,此选项适用于优化

limit:代表的是指定输入到map函数的文档的最大数量

finalize:可选,代表的是对reduce函数输出的文档进行更改,是一个Javascript函数

scope:代表的是定义map、reduce、finalize函数中可以全局使用的变量

jsMode:代表的是在执行map、reduce函数之间,是否将中间数据转换为BSON格式,默认值为false。

       (1)如果为false:在内部,MongoDB通过map函数将Javascript对象转换成BSON对象,当调用reduce函数时,BSON对象会被转换成Javascript对象;map-reduce会放置中间BSON对象在临时的磁盘存储中,这将允许对任意大型数据集执行操作。

       (2) 如果为true:在内部,map函数执行完之后会保留Javascript对象,在执行reduce函数时不再需要转换,能够更快的得到结果;只能用于映射函数的key少于500000个的情况。

bypassDocumentValidation:可选,是否绕开文档验证

5.0版本以后,Map-Reduce已经过时,建议是使用$accumulator 和 $function 聚合运算符

三、例子:计算学生的总分数

聚合查询如下:

db.subjectScores.mapReduce(function() {emit(this.name, this.score);},function(key, values) {return Array.sum(values);},{out: { inline: 1 }}
)

我们对上面的聚合查询进行解释:

1、map函数中使用name作为key进行分组,score作为value进行聚合运行

2、reduce函数中对values(也就是name相同的所有的score组成的数组)进行求和;这里使用的Array.sum是Javascript函数

3、对mapReduce的结果进行直接输出

聚合查询的结果如下:

{"results" : [{"_id" : "李四","value" : 210},{"_id" : "张三","value" : 230},{"_id" : "王五","value" : 210}],"ok" : 1
}

http://www.yayakq.cn/news/143137/

相关文章:

  • 国外做问卷网站好靖江建设局网站
  • 自助友链平台苏州关键词优化软件
  • 400电话申请网站源码程序佛山做外贸网站哪家好
  • 太原建设厅官方网站免费建设com网站
  • 河北衡水网站建设wordpress页面是什么意思
  • 黄埔网站建设贵阳建设工程招聘信息网站
  • 建站网站有哪些seo关键词优化培训班
  • 网站怎么做支付进出口贸易公司注册需要什么条件
  • 做玩具订制网站好处岳阳云溪区建设局网站
  • 机关网站建设征求意见建设网站的主要设备
  • 做门户网站主要技术哪一块人力资源公司简介
  • 留学公司网站怎么做福田公司股票
  • 如何改进网站wordpress后台修改icp连接
  • 做网站的公司如何推广东莞营销专业网站建设
  • 刚做的网站多久能被搜索到宝塔系统怎么建设网站
  • 如何建设一个购物网站上海十大国企
  • 购物网站建设优缺点深圳自建站有哪些大公司
  • 网站 布局wordpress 网校插件
  • 信阳建设企业网站公司装饰网站的业务员都是怎么做的
  • c#网站开发 pdf织梦如何做响应式手机网站
  • 青岛 公司 网站建设价格空间设计方案
  • 广平专业做网站江苏网站备案流程
  • 淘宝客cms网站怎么做黑龙江网站建设工作室
  • 公司建网站怎么弄网站搭建哪家比较好
  • 大江网站建设滴滴推广联盟
  • 网站首页动画怎么做的佛山市三山新城建设局网站
  • 三明北京网站建设怎样查看网站总浏览量
  • 赶集网天津网站建设室内设计师联盟app
  • 东莞网站优化指导hugo 怎么做网站
  • 福建省亿力电力建设有限公司网站怎么制作图片文件夹