首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

MongoDB的MapReduce施用

2012-07-31 
MongoDB的MapReduce使用参考文章??http://www.mongodb.org/display/DOCS/MapReducehttp://www.rainsts.net

MongoDB的MapReduce使用

参考文章

?

?

http://www.mongodb.org/display/DOCS/MapReduce

http://www.rainsts.net/article.asp?id=1044

https://github.com/mongodb/mongo-java-driver/commit/fa003adc5db8a6c4efe0279c74973af15d99e6ed#diff-2

?

?

MapReduce是一个编程模型,封装了并行计算、容错、数据分布、负载均衡等细节问题。

输入是一个key-value对的集合,中间输出也是key-value对的集合,用户使用两个函数:Map和Reduce。

?

在使用MongoDb的mapreduce功能时,我找Java代码找半天,结果练了半天的Javascript代码。

MongoDb是通过解析“Javascript”代码来计算的。所有我们先用Javascript代码调通,再使用Java代码拼接使用这个MapReduce功能。

?

?

?

?

?

?

我使用上一篇文章插入数据?http://xiaofancn.iteye.com/blog/1163200

?

讲讲我们要实现的功能,就是按照名字name统计记录个数。

?

?

?

?

?

?

?

?

好了,会使用Javascript,使用Java就是拼接我们的Javascript代码了。

?

?

public void MapReduce() {DBCollection personColl = mongoOperations.getCollection(mongoOperations.getCollectionName(Person.class));String map = "function() { emit(this.name, {count:1});}";String reduce = "function(key, values) {";reduce=reduce+"var total = 0;";reduce=reduce+"for(var i=0;i<values.length;i++){total += values[i].count;}";reduce=reduce+"return {count:total};}";String result = "resultCollection";MapReduceOutput mapReduceOutput = personColl.mapReduce(map,reduce.toString(), result, null);DBCollection resultColl = mapReduceOutput.getOutputCollection();DBCursor cursor= resultColl.find();while (cursor.hasNext()) {System.out.println(cursor.next());}}
?

?

?

1 楼 violetluna 2011-12-31   不过,明白了

热点排行