• mongo之map-reduce笔记


     1 package com.sy.demo;
     2 
     3 import com.mongodb.MongoClient;
     4 
     5 import com.mongodb.client.FindIterable;
     6 import com.mongodb.client.MapReduceIterable;
     7 import com.mongodb.client.MongoCollection;
     8 import com.mongodb.client.MongoCursor;
     9 import com.mongodb.client.MongoDatabase;
    11 import org.bson.Document;
    13 import java.io.File;
    14 import java.io.FileOutputStream;
    16 import java.text.SimpleDateFormat;
    18 import java.util.Calendar;
    19 import java.util.Date;
    21 
    22 public class MongoDBJDBC2 {
    23     public static void main(String[] args) {
    24         try {
    25             MongoClient mongoClient = new MongoClient("localhost", 27017);
    26             MongoDatabase db = mongoClient.getDatabase("data");
    27             MongoCollection<Document> coll = db.getCollection("factPunishment");
    28             Calendar cal = Calendar.getInstance();
    29             SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
    30             cal.add(Calendar.MONTH, -6);
    32             String compareDate = format.format(cal.getTime());
    33             String currentDate = format.format(Calendar.getInstance().getTime());
    34             String mapFunc = "function(){" + "if(this.factName=='诈骗数额特别巨大'){" +
    35                 "if(this.createDate<='" + currentDate +
    36                 "' && this.createDate>='" + compareDate + "'){" +
    37                 "emit(this.factPunishment, 1);" + "}" + "};" + "}";
    38             String reduceFunc = "function( key, values ){ return Array.sum(values); }";
    39             MapReduceIterable<Document> result = coll.mapReduce(mapFunc,reduceFunc);
    41             String str = "";
    42 
    43             for (Document d : result) {
    44                 str += ("起刑点:" + d.get("_id") + ",案件量:" + d.get("value") + "
    ");
    46                 System.out.println("起刑点:" + d.get("_id") + ",案件量:" + d.get("value"));
    48             }
    49 
    50             FileOutputStream out = new FileOutputStream(new File("D://test//factPunishment.txt"));
    52             out.write(str.getBytes());
    53             out.close();
    54         } catch (Exception e) {
    55             System.err.println(e.getClass().getName() + ": " + e.getMessage());
    56         }
    57     }
    58 }
  • 相关阅读:
    bzoj 2969: 矩形粉刷 概率期望+快速幂
    loj #6191. 「美团 CodeM 复赛」配对游戏 期望dp
    CF446C DZY Loves Fibonacci Numbers 线段树 + 数学
    CF696B Puzzles 概率期望
    bzoj 3566: [SHOI2014]概率充电器 数学期望+换根dp
    loj #6342. 跳一跳 期望dp
    CF316G3 Good Substrings 广义后缀自动机
    bzoj 3829: [Poi2014]FarmCraft 树形dp+贪心
    bzoj 2131: 免费的馅饼
    CF19D Points 平衡树
  • 原文地址:https://www.cnblogs.com/eyesmoon/p/9774131.html
Copyright © 2020-2023  润新知