mongoose mapreduce(mapreduce demo)

本文主要介绍mapReduce在MongoDB中的使用,类似于sql的分组和聚合。首先对Map进行分组,然后使用reduce进行统计,最后可选地使用finalize调整最终结果。嗯,

我来介绍一下,我用的版本是mongodb2.4.5,然后我还用了MongoVUE(一个非常好的图形化mongodb管理工具)来帮我配合。

1、原始数据集合中有三个doc要使用:

mongoose mapreduce(mapreduce demo)

它们的数据格式是:

mongoose mapreduce(mapreduce demo)

可能很多人不关注mongodb中存储的数据格式,但对我来说,这是非常敏感的。我不喜欢在后台使用object来保存这些原本清晰的类型。这里我再多提一点。如果您使用控制台插入数据,您插入的数字,

可能保存为双精度值,但如果要保存为整数,则必须使用NumberInt()和NumberLong()。示例:

mongoose mapreduce(mapreduce demo)

运行后,您无法在控制台上看到数据类型,但使用MongoVUE,我可以看到:

mongoose mapreduce(mapreduce demo)

数据库直接保存为双份。并使用:

mongoose mapreduce(mapreduce demo)

您可以将其保存为int32,并使用NumberLong()将其保存为Int64。

2.让MapReduce实现统计有多少人寻找不同的名字。首先是map函数,然后是reduce函数。

1 function mapping () {2 emit(3 this. name, 4 {count: 1} 5); 6} Issue (key, value) is a grouped function,

1 function Reduce(key,values){ 2 var reduced={ count:0,name:‘‘};//初始化返回值3价值观。foreach(function(val){ 4已减少。count=val数数;5 });6退货减少;7 }接下来是减少函数,

好了,让我们看看如何在数据库控制台下调用这个MapReduce:

1分贝。运行命令({ MapReduce:‘lekko‘,2 Map:function Map(){ 3 emit(4 this。name,5 { count:1 } 6);7 },8 Reduce:function Reduce(key,values){ 9 var reduced={ count:0,name:‘‘};//初始化返回值10个值。foreach(function(val){ 11已减少。count=val数数;12 });13家退货减少;14 },15 out:{ inline:1 } 16 });结果很快出来了:

mongoose mapreduce(mapreduce demo)

因为我之前在控制台下又添加了两个文档,所以现在有四个人叫lekko。值得注意的是,这里MapReduce后的结果将全部是double!

3.一些附加操作

MapReduce的简单原理很简单,关键是灵活运用。现在我将举一些我自己经历的例子:

将查询放入MapReduce中。

在前面的runCommand中添加参数。例如,如果我想查询所有男生,我会添加.查询:{‘isman‘:true },

(2)结果的数据类型转换。

使用Finalize函数(此函数在Reduce函数之后调用,它将对所有键的Reduce结果执行最终操作)。例如,我在后台调用api后想要的是int数据,而不是double数据。

然后您可以添加Finalize函数:

一.2最终确定:函数finalize(key,reduced){ 3 reduced。count=number int(减少。计数);四退货减少;5 },6 .这样,

时间类型

由于mongodb具有日期类型,因此存储时间的格式和查询时间的格式可能不一致(尤其是当您的mongodb是远程部署的并且多人协作开发时),这将导致无法根据时间条件找到数据的问题。我的建议是,

长形式的直接存储时间(过去的秒),那么这个差异问题就不再存在。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://www.freetrip88.com/baike/370296.html

      
上一篇 2024-02-08
相关推荐