mongoDB mapReduce


java 代码片段
                   执行mr需要用原始的client    用封装的 DBOperations会超时
                    com.mongodb.MongoClient   mongo = new  com.mongodb. MongoClient(Constants.MexueGrowthMongodbIp,
Constants.MexueGrowthMongodbPort);
//queryDB = mongo.getDB("muexueGrowth");
com.mongodb.DB  queryDB = mongo.getDB("new_mexueGrowth");

com.mongodb. DBCollection  queryCollection = queryDB
.getCollection("growth_record");
String rootPath = getServletContext().getRealPath("/");
String map = FileUtil
.getTextFromFile(new File(
rootPath
+ "/static/mapreduce/active/growth_record_class_map.js"));
String reduce = FileUtil
.getTextFromFile(new File(
rootPath
+ "/static/mapreduce/active/school_class_reduce.js"));
String finalize = FileUtil
.getTextFromFile(new File(
rootPath
+ "/static/mapreduce/active/school_class_final.js"));
//查询条件
com.mongodb.BasicDBObject  queryForMap = new BasicDBObject();
queryForMap.put("createdTime", new BasicDBObject("$gte", day+" 00:00:00").append("$lte", day+" 23:59:59"));

com.mongodb.MapReduceCommand  cmd = new MapReduceCommand(queryCollection, map, reduce, null,
MapReduceCommand.OutputType.INLINE, queryForMap);
                cmd.setSort(new BasicDBObject("schoolId",1));//设置排序
cmd.setFinalize(finalize);
                    //执行mr
                    com.mongodb.MapReduceOutput  mapReduceOutputFromCollect  queryCollection.mapReduce(cmd);
                    out.print("成长记录学校数量:"+mapReduceOutputFromCollect.getOutputCount()+"<br/>");
out.flush();
                    for (DBObject dbObject : mapReduceOutputFromCollect.results()) {//遍历
                        //your code
                    }
输出格式

    "_id" : "54c71c048b5db21f0cd2c840", //学校id
    "value" : {//学校详情
        "num" : 265.0, //学校发成长次数
        "per" : 125.0, //学校发成长人数
        "info" : {//班级详情
            "54c71c778b5db21f0cd2c878" : {//班级id
                "num" : 9.0, //班级发成长次数
                "per" : 7.0, //班级发成长次数
                "uIds" : {//用户详情
                    "54c723568b5db21f0cd2caae" : "576ea38ce98e2a412354881e", //key为userId,value为发送的成长id列表
                    "54c723568b5db21f0cd2cab6" : "576e9c28c94f6e4784015feb", 
                    "54c723568b5db21f0cd2caaa" : "576e8b7dad3470261d25121a,576e8b3ac94f6e4784013674,576e0029e98e2a41235309af", 
                    "54c723578b5db21f0cd2cace" : "576e6a80ad3470261d24aa21", 
                    "557553990cf22dfd18897806" : "576e62d9ad3470261d24968d", 
                    "54c723568b5db21f0cd2caba" : "576df0d8ad3470261d23a15a", 
                    "54c723578b5db21f0cd2cad8" : "576dced2c94f6e4784ff820a"
                }
            }, 
            "54c71c048b5db21f0cd2c840#teacher" : {//教师发表成长详情
                "num" : 1.0, 
                "per" : 1.0, 
                "uIds" : {
                    "55e505aa0cf2eb9550f3eeed" : "576d5913ad3470261d232167"
                }
            },
            "54c71c048b5db21f0cd2c840#pri" : {//私密成长详情(私密成长没班级)
                "num" : 18.0, 
                "per" : 5.0, 
                "uIds" : {
                    "55e7c47b0cf2eb9550f3f2cd" : "576ea31be98e2a41235487c2,576ea2cec94f6e47840167c2,576ea25dc94f6e4784016766,576ea19bc94f6e47840166b3,576ea0b0ad3470261d253fe9,576ea04de98e2a4123548526,576e9ff7ad3470261d253f3d,576e9fabc94f6e478401647b", 
                    "55e9161c0cf2eb9550f3f413" : "576e8770ad3470261d250549,576ddf38e98e2a412352c180", 
                    "55e8e2420cf29482eeb75beb" : "576e8464c94f6e4784012038,576e83e1c94f6e4784011e53", 
                    "54c721508b5db21f0cd2c9a3" : "576e7d97e98e2a4123542865,576e48dee98e2a412353a869,576e48a7e98e2a412353a81d,576dbe0ec94f6e4784ff6077", 
                    "54c71f9c8b5db21f0cd2c93d" : "576e4f44ad3470261d246e80,576e4e9ec94f6e478400942a"
                }
            }, 
            "54c71c648b5db21f0cd2c85d" : {
                "num" : 27.0, 
                "per" : 10.0, 
                "uIds" : {
                    "54c71de78b5db21f0cd2c8af" : "576ea2e2e98e2a412354878d,576ea236ad3470261d254174", 
                    "54c71de78b5db21f0cd2c897" : "576e7eb7c94f6e4784010cea,576e7df6c94f6e4784010a19,576e7d76c94f6e4784010887,576e2d2ac94f6e478400572b", 
                    "54c71de78b5db21f0cd2c895" : "576e7331e98e2a4123540927,576e726ae98e2a41235406c2,576e7246e98e2a4123540642", 
                    "54c71de78b5db21f0cd2c893" : "576e6a2fe98e2a412353eeba,576e696bad3470261d24a718", 
                    "54c71de78b5db21f0cd2c8a9" : "576e5734e98e2a412353c38a,576e1747c94f6e47840029cf,576e168dad3470261d24016c,576e1628e98e2a4123534470", 
                    "54c71de78b5db21f0cd2c88d" : "576e2e26c94f6e47840058d9,576e2d6fad3470261d243236,576e2d07e98e2a412353761d,576e2c84c94f6e47840055e6", 
                    "54c71de78b5db21f0cd2c8ab" : "576e2969c94f6e4784004fd1", 
                    "54c71de78b5db21f0cd2c899" : "576e229ac94f6e4784004397,576e2276ad3470261d241dbb,576e1fb2ad3470261d241794", 
                    "54c71de78b5db21f0cd2c8ad" : "576de46be98e2a412352cbf7,576de423c94f6e4784ffab44", 
                    "54c71de78b5db21f0cd2c8a1" : "576ddfe7ad3470261d237f63,576ddfabc94f6e4784ffa242"
                }
            }, 
            "55e50ce30cf2eb9550f3ef04" : {
                "num" : 26.0, 
                "per" : 8.0, 
                "uIds" : {
                    "55e7dec00cf2eb9550f3f2fd" : "576ea1f9ad3470261d25413a", 
                    "55e83f9d0cf2eb9550f3f378" : "576e8bfec94f6e47840138ee,576e808cad3470261d24edb1,576e742bc94f6e478400ec85,576e7386e98e2a4123540a0a,576e7098c94f6e478400e246,576e4717ad3470261d24607e,576e46f2ad3470261d246031,576e46abe98e2a412353a454", 
                    "56d78f620cf25a67ac866e74" : "576e8bbcc94f6e4784013811,576e83dee98e2a4123543daa", 
                    "55e808160cf29482eeb75b87" : "576e7c51c94f6e4784010525,576e7c1cad3470261d24deef", 
                    "55e90fe00cf2eb9550f3f3f7" : "576e749ec94f6e478400ee2b,576e6f76ad3470261d24b956,576e08dcc94f6e47840000de,576e0827e98e2a4123531e23", 
                    "55e80c130cf2eb9550f3f334" : "576e63bbe98e2a412353de37", 
                    "55e981890cf29482eeb75c9e" : "576e1577e98e2a412353427b,576e14b4c94f6e4784002286,576e145fc94f6e478400219c,576dbcfbc94f6e4784ff5ed7,576daa40e98e2a4123526b56", 
                    "55e7ae190cf29482eeb75aea" : "576e08cfe98e2a4123531fd4,576ddc76ad3470261d23782c,576dd21dad3470261d2362b3"
                }
            }, 
            "54c71c668b5db21f0cd2c860" : {
                "num" : 25.0, 
                "per" : 13.0, 
                "uIds" : {
                    "54c71eb98b5db21f0cd2c8e7" : "576ea1c7e98e2a41235486ae,576ea154c94f6e4784016669", 
                    "54c71eb98b5db21f0cd2c8bf" : "576e822bad3470261d24f30b,576e81cbe98e2a412354365f,576e8195c94f6e47840116cf,576e8141e98e2a41235434a3,576e811ec94f6e478401151d", 
                    "54c71eb98b5db21f0cd2c8cf" : "576e77b8e98e2a412354167f,576e76e1e98e2a41235413fb", 
                    "54c71eb98b5db21f0cd2c8d1" : "576e70e7ad3470261d24bcfc", 
                    "54c71eb98b5db21f0cd2c8c9" : "576e5e49e98e2a412353d221", 
                    "54c71eb98b5db21f0cd2c8cb" : "576e50bee98e2a412353b739,576df5d1e98e2a412352f09e", 
                    "54c71eb98b5db21f0cd2c8d7" : "576e4236c94f6e4784007dcb,576e417bc94f6e4784007cac", 
                    "54c71eb98b5db21f0cd2c8f3" : "576e401fad3470261d2453d6", 
                    "54c71eb98b5db21f0cd2c8c3" : "576e3db8c94f6e47840075f0,576e3ca9e98e2a4123539248", 
                    "54c71eb98b5db21f0cd2c8c1" : "576e25a5c94f6e4784004916,576e22a6c94f6e47840043ad,576e2203e98e2a4123536072", 
                    "54c71eb98b5db21f0cd2c8eb" : "576e1b58e98e2a41235350bc", 
                    "56eb9642ad3470533c9db9c8" : "576e1846ad3470261d24059b,576e0e70c94f6e47840010cc", 
                    "54c71eb98b5db21f0cd2c8c7" : "576dec86c94f6e4784ffbbc5"
                }
            }, 
            "54c71c7b8b5db21f0cd2c87b" : {
                "num" : 24.0, 
                "per" : 7.0, 
                "uIds" : {
                    "54c723f08b5db21f0cd2caf4" : "576e9fd7e98e2a41235484ad", 
                    "55fb86db0cf2601498afc643" : "576e856de98e2a412354432c,576e6801c94f6e478400c96d,576de26fe98e2a412352c7ee", 
                    "55ffa5e90cf2d60e90d7b365" : "576e682fe98e2a412353e921,576e67e4c94f6e478400c90b,576de582c94f6e4784ffae37,576de3c7ad3470261d238687,576de33be98e2a412352c97f,576dc6a7e98e2a412352905d,576dc660ad3470261d234c27", 
                    "54c723f08b5db21f0cd2caf8" : "576e5973ad3470261d24827a", 
                    "54c723f08b5db21f0cd2caf0" : "576e21aead3470261d241c53,576e215ee98e2a4123535f07,576e2140c94f6e4784004107,576df1d5c94f6e4784ffc82d,576dd381e98e2a412352a9aa,576dd34fad3470261d23652c", 
                    "54c723f08b5db21f0cd2cae6" : "576e0594ad3470261d23d348,576e0562e98e2a4123531695", 
                    "54c723f08b5db21f0cd2cae8" : "576dd559e98e2a412352ad77,576dd545e98e2a412352ad67,576dd4ebad3470261d2368af,576dd427c94f6e4784ff8be0"
                }
            }, 
            "54c71c6b8b5db21f0cd2c869" : {
                "num" : 11.0, 
                "per" : 5.0, 
                "uIds" : {
                    "54c720db8b5db21f0cd2c974" : "576e9f07c94f6e47840163c7,576e10aac94f6e47840016fd,576e0f92c94f6e47840013e3", 
                    "54c720db8b5db21f0cd2c991" : "576e8b6ead3470261d2511fc,576e8b2bc94f6e4784013648,576e8abbc94f6e4784013514,576e8a3ee98e2a4123545398,576e8a1fad3470261d250dfb", 
                    "54c720db8b5db21f0cd2c995" : "576e8a33ad3470261d250e47", 
                    "54c720db8b5db21f0cd2c98f" : "576e1aafad3470261d240b3a", 
                    "54c720da8b5db21f0cd2c96c" : "576e0704e98e2a4123531afe"
                }
            }, 
            "54c71c6a8b5db21f0cd2c866" : {
                "num" : 16.0, 
                "per" : 7.0, 
                "uIds" : {
                    "54c71f9c8b5db21f0cd2c953" : "576e982aad3470261d253315,576e97a5e98e2a41235477a1", 
                    "54c71f9c8b5db21f0cd2c93f" : "576e8efdad3470261d251cb7,576e8edfc94f6e478401424b", 
                    "54c720608b5db21f0cd2c960" : "576e8892e98e2a4123544e09,576e8870c94f6e4784012d94", 
                    "54c71f9c8b5db21f0cd2c939" : "576e806cad3470261d24ed3d,576e8023c94f6e4784011201,576e7fa8ad3470261d24eac1", 
                    "54c71f9c8b5db21f0cd2c93d" : "576e503ce98e2a412353b649,576e4ffaad3470261d247003", 
                    "54c71f9c8b5db21f0cd2c937" : "576e4ed9c94f6e4784009483,576e4e61e98e2a412353b26d", 
                    "54c71f9c8b5db21f0cd2c94d" : "576dc497ad3470261d234907,576dc458c94f6e4784ff6d01,576dc434ad3470261d234841"
                }
            }, 
            "55e50ce30cf2eb9550f3ef01" : {
                "num" : 14.0, 
                "per" : 8.0, 
                "uIds" : {
                    "55e6ebc40cf29482eeb75a4e" : "576e973ec94f6e4784015706,576e9651c94f6e47840154fb,576e55fdc94f6e478400a228", 
                    "55ed8cb90cf297d6705727c1" : "576e5b67c94f6e478400ad59", 
                    "55e7b2410cf29482eeb75af6" : "576e3c0ec94f6e478400731b", 
                    "55e7c2970cf2eb9550f3f2c8" : "576e2bb3c94f6e478400543d,576dd31be98e2a412352a8b3", 
                    "55e70cef0cf29482eeb75aa5" : "576df773c94f6e4784ffd572,576dc4a1c94f6e4784ff6da6", 
                    "55e6bdb10cf29482eeb759e8" : "576de602e98e2a412352cf37", 
                    "55e7e1eb0cf29482eeb75b5c" : "576de52de98e2a412352cd6e,576de487ad3470261d23883b", 
                    "55e7a22e0cf29482eeb75ad7" : "576dde77ad3470261d237c62,576dd50de98e2a412352ad0f"
                }
            }, 
            "54c71c828b5db21f0cd2c881" : {
                "num" : 8.0, 
                "per" : 5.0, 
                "uIds" : {
                    "54c725248b5db21f0cd2cb26" : "576e9492ad3470261d252b03", 
                    "54c725238b5db21f0cd2cb12" : "576e906ae98e2a412354664e,576e0925e98e2a41235320be", 
                    "55ec42390cf2fa4e302874fd" : "576e781cc94f6e478400f833", 
                    "54c725248b5db21f0cd2cb1a" : "576e3f6bc94f6e4784007912,576e3e61e98e2a412353955e", 
                    "54c725238b5db21f0cd2cb16" : "576e1702c94f6e4784002911,576df1abc94f6e4784ffc7d4"
                }
            }, 
            "54c71c7e8b5db21f0cd2c87e" : {
                "num" : 9.0, 
                "per" : 5.0, 
                "uIds" : {
                    "54c7243e8b5db21f0cd2cb00" : "576e8f6fe98e2a4123546391,576e5b0dad3470261d2485fd", 
                    "567a4f5f0cf2b7ec0e91e454" : "576e84fdc94f6e478401221e", 
                    "55ffa6080cf2d60e90d7b36a" : "576e7729ad3470261d24cf88", 
                    "54c7243e8b5db21f0cd2cb02" : "576e3b55e98e2a4123538ff1", 
                    "54c7243e8b5db21f0cd2cb0a" : "576dfc5ead3470261d23bd10,576dfb41c94f6e4784ffde8a,576dfafce98e2a412352fd84,576de902e98e2a412352d4cf"
                }
            }, 
            "54c71c688b5db21f0cd2c863" : {
                "num" : 12.0, 
                "per" : 6.0, 
                "uIds" : {
                    "54c71f248b5db21f0cd2c925" : "576e8c74ad3470261d2514f6,576e7c86ad3470261d24e0a3,576e7c3fe98e2a4123542492", 
                    "54c71f248b5db21f0cd2c927" : "576e5db6c94f6e478400b21d,576e5da6ad3470261d248b3f,576e5d6dc94f6e478400b1a0", 
                    "54c71f248b5db21f0cd2c919" : "576e560ec94f6e478400a251,576e5163ad3470261d2472a5,576e50aee98e2a412353b6ff", 
                    "5677c2e60cf2e657089ae14d" : "576e4f04e98e2a412353b39a", 
                    "54c71f248b5db21f0cd2c91d" : "576e163be98e2a412353449b", 
                    "54c71f248b5db21f0cd2c915" : "576ddedfad3470261d237d2e"
                }
            }, 
            "55e50ce20cf2eb9550f3eef8" : {
                "num" : 7.0, 
                "per" : 6.0, 
                "uIds" : {
                    "55e6d4e90cf2eb9550f3f1fc" : "576e8b38ad3470261d251142", 
                    "55eb6d180cf29482eeb75db4" : "576e52a8ad3470261d2474b0", 
                    "576a77c7c94f6e275fbfcb98" : "576e5131e98e2a412353b822", 
                    "55ec329d0cf2d7e4aaa8bd61" : "576e15e0e98e2a41235343b6", 
                    "55ec33dd0cf2fa4e302874df" : "576e1516e98e2a41235341c2,576e14b9ad3470261d23fc33", 
                    "55e8fae70cf29482eeb75c1f" : "576dd66ead3470261d236b48"
                }
            }, 
            "54c71c728b5db21f0cd2c86f" : {
                "num" : 14.0, 
                "per" : 6.0, 
                "uIds" : {
                    "55ec12a00cf2d7e4aaa8bd07" : "576e89edc94f6e4784013287,576e8857ad3470261d25083e,576e86b9c94f6e47840127fc,576e85d6e98e2a412354448e", 
                    "54c7222c8b5db21f0cd2ca16" : "576e860ee98e2a412354454a,576e84e2e98e2a4123544116,576e8482e98e2a4123543fea,576e092fad3470261d23dc8c", 
                    "54c7222c8b5db21f0cd2ca26" : "576e6dbce98e2a412353f971,576e5c87c94f6e478400afa2", 
                    "54c7222c8b5db21f0cd2ca28" : "576e0683c94f6e4784fffa7a", 
                    "54c7222c8b5db21f0cd2ca22" : "576df26bc94f6e4784ffc98f", 
                    "54c7222c8b5db21f0cd2ca1a" : "576dc5a2c94f6e4784ff6f5b,576dc261c94f6e4784ff68f8"
                }
            }, 
            "54c71c6d8b5db21f0cd2c86c" : {
                "num" : 5.0, 
                "per" : 3.0, 
                "uIds" : {
                    "54c721518b5db21f0cd2c9c3" : "576e8539c94f6e478401231a,576e851ae98e2a41235441f5,576e84e1c94f6e47840121d0", 
                    "54c721508b5db21f0cd2c99f" : "576e77a6e98e2a4123541635", 
                    "54c721508b5db21f0cd2c9ab" : "576dfd55c94f6e4784ffe3a7"
                }
            }, 
            "55e50ce20cf2eb9550f3eefb" : {
                "num" : 15.0, 
                "per" : 6.0, 
                "uIds" : {
                    "55e6b5510cf2eb9550f3f19a" : "576e7a04e98e2a4123541d66", 
                    "55e6b8fc0cf29482eeb759d0" : "576e793ec94f6e478400fb6f", 
                    "55e6e1fc0cf29482eeb75a31" : "576e4c64ad3470261d2469a7,576e482cad3470261d246268,576df1c5e98e2a412352e7c8", 
                    "55e70a4f0cf2eb9550f3f26a" : "576e26c1e98e2a4123536983,576e2652c94f6e4784004a6e,576dd6afc94f6e4784ff9064", 
                    "55e7ff500cf29482eeb75b6b" : "576e131de98e2a4123533c29,576e128ac94f6e4784001c71,576d5cfcc94f6e4784ff47ed,576d5be9ad3470261d23224d,576d5b80e98e2a412352656d", 
                    "55ffa0070cf2d60e90d7b32f" : "576df85ead3470261d23b33f,576ddb01ad3470261d237531"
                }
            }, 
            "55e50ce30cf2eb9550f3ef07" : {
                "num" : 12.0, 
                "per" : 8.0, 
                "uIds" : {
                    "55eeb8360cf27ac7731f0917" : "576e73fcc94f6e478400ebe0", 
                    "55e709e30cf2eb9550f3f265" : "576e5875e98e2a412353c5de", 
                    "55eeb5750cf27ac7731f08e5" : "576e343bad3470261d243dd9,576e33bbad3470261d243cd5", 
                    "55ee9a0d0cf20b2e74cbd8de" : "576e1c7ac94f6e4784003614,576df4a5ad3470261d23aa82", 
                    "55e6c1270cf29482eeb759ef" : "576e0b0fe98e2a41235325df", 
                    "569604aa0cf2ee01ab8982cd" : "576dfbbcc94f6e4784ffdfb5", 
                    "55eabd910cf29482eeb75d71" : "576df398e98e2a412352ec14", 
                    "55e8f7c90cf29482eeb75c14" : "576dd606c94f6e4784ff8f4f,576da653ad3470261d2326a7,576da632e98e2a4123526a33"
                }
            }, 
            "55e50ce30cf2eb9550f3eefe" : {
                "num" : 9.0, 
                "per" : 7.0, 
                "uIds" : {
                    "55e905c60cf2eb9550f3f3f1" : "576e7218e98e2a41235405a3", 
                    "55e6e4c10cf2eb9550f3f21f" : "576e2a7ce98e2a4123537131,576e0fece98e2a4123533395", 
                    "55eadd6a0cf29482eeb75d86" : "576e28d9e98e2a4123536dc2", 
                    "55e94a840cf2eb9550f3f42e" : "576df37cad3470261d23a7c0", 
                    "55e98a450cf29482eeb75cbd" : "576df1e6e98e2a412352e821", 
                    "55e83dce0cf29482eeb75bb9" : "576ded05ad3470261d2398ce", 
                    "55e6bcee0cf29482eeb759e3" : "576dce90e98e2a4123529ff1,576dce2fe98e2a4123529f5e"
                }
            }, 
            "54c71c838b5db21f0cd2c884" : {
                "num" : 1.0, 
                "per" : 1.0, 
                "uIds" : {
                    "5595d1170cf28e66635afdf3" : "576e50afe98e2a412353b703"
                }
            }, 
            "54c71c748b5db21f0cd2c872" : {
                "num" : 2.0, 
                "per" : 1.0, 
                "uIds" : {
                    "557c39040cf2f3668d0b7174" : "576e356aad3470261d244032,576e1510c94f6e47840023e7"
                }
            }
        }
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值