java mongo MapReduce
来源:互联网 发布:gov.cn域名代注册 编辑:程序博客网 时间:2024/06/06 06:59
//Map过程,通过emit函数实现,第一个参数表示用于分组的字段, //第二个参数表示分组字段所对应的值 String map="function() {" + "emit(this.期刊," + "{count: 1, ref: this.参考文献}); " + "}"; //Reduce过程,遍历values,填充相应业务逻辑。 String reduce="function(key, values) {" + "var reduced = {articlecount:0, refcount:0};" + "values.forEach(function(val) {" + "for(var r in val.ref)" + "reduced.refcount += 1;" + "reduced.articlecount += 1; });" + "return reduced;}"; //Finalize过程,针对MapRecuce结果,填充相应业务逻辑。 String finalize = "function(key, reduced) " + "{reduced.avgRefcount = reduced.refcount / reduced.articlecount;" + "return reduced;}"; MapReduceCommand cmd = new MapReduceCommand(table , map, reduce, null, MapReduceCommand.OutputType.INLINE, null); cmd.setFinalize(finalize); MapReduceOutput out = table.mapReduce(cmd);