//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);
java mongo MapReduce
最新推荐文章于 2024-07-25 11:48:36 发布