Mongo Group
来源:互联网 发布:矩阵论导教导学导考 编辑:程序博客网 时间:2024/05/22 15:42
package com.xxx.statistic.mongo;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.Set;import com.xxx.statistic.constants.Constants;import com.xxx.statistic.file.ExcelWriter;import com.xxx.statistic.util.GsonHelper;import com.mongodb.AggregationOutput;import com.mongodb.BasicDBObject;import com.mongodb.CommandResult;import com.mongodb.DB;import com.mongodb.DBCollection;import com.mongodb.DBObject;import com.mongodb.Mongo;public class MongoStatistic { public static Mongo mongo; public static void genMongoStatisticInfo()throws Exception{ DB db = mongo.getDB(Constants.MONGO_XXX_DB); Set<String> collectionNames = db.getCollectionNames(); List<Map<String,Object>> records = new ArrayList<Map<String,Object>>(); for(String name : collectionNames){ if(name.startsWith("xxx")){ Map<String,Object> ret = new HashMap<String, Object>(); DBCollection collection = db.getCollection(name); DBObject date = new BasicDBObject(); date.put("$gte", Integer.parseInt(Constants.START_DATE)); date.put("$lte", Integer.parseInt(Constants.END_DATE)); Long count = collection.count(new BasicDBObject("DATE",date)); ret.put("collection", name); ret.put("avg_day_count", count.doubleValue()/n+""); CommandResult result = collection.getStats(); ret.put("total_count",result.get("count").toString()); ret.put("size",result.get("size").toString()); ret.put("avgObjSize",result.get("avgObjSize").toString()); ret.put("storageSize",result.get("storageSize").toString()); ret.put("numExtents",result.get("numExtents").toString()); ret.put("totalIndexSize",result.get("totalIndexSize").toString()); records.add(ret); } } ExcelWriter.write("mongo","xxx", new String[]{"collection","avg_day_count", "total_count","size","avgObjSize", "storageSize","numExtents","totalIndexSize"}, new String[]{"集合名","日均数据增量", "总数据量","占用空间(字节)","平均每条记录占用空间(字节)", "分配的空间(字节)","连续分配的数据块","索引总数"}, records); } public static void genMongoInfo()throws Exception{ DB db = mongo.getDB(Constants.MONGO_RMM_DB); DBCollection collection = db.getCollection("xxx"); DBObject date = new BasicDBObject(); date.put("$gte", Integer.parseInt(Constants.START_DATE)); date.put("$lte", Integer.parseInt(Constants.END_DATE)); DBObject match = new BasicDBObject("$match", new BasicDBObject("date", date)); DBObject fields = new BasicDBObject(); fields.put("_id", "$processorId"); fields.put("type", new BasicDBObject("$max", "$type")); fields.put("triggerType", new BasicDBObject("$max", "$triggerType")); fields.put("calculate_num", new BasicDBObject("$sum", "$calculate")); fields.put("receive_num", new BasicDBObject("$sum", "$receive")); DBObject group = new BasicDBObject("$group", fields); AggregationOutput output = collection.aggregate(match,group); CommandResult result = output.getCommandResult(); List<Map<String,Object>> records = GsonHelper.lmso(result.get("result").toString()); for(Map<String,Object> map :records){ //TODO 数据加工 } ExcelWriter.write(param1,...); } @SuppressWarnings("deprecation") public static void initMongo() throws Exception{ try { mongo = new Mongo(Constants.MONGO_IP, Integer.parseInt(Constants.MONGO_PORT)); } catch(Exception e) { throw new Exception(e); } DB db = mongo.getDB("admin"); boolean ok = db.authenticate(Constants.MONGO_USER_NAME , Constants.MONGO_PASSWORD.toCharArray()); if(!ok){ mongo = null; } }}
0 0
- Mongo Group
- mongo java group操作
- mongo Aggregation group
- mongo group by
- Mongo 实现group 分组功能
- mongo group后统计总数
- mongo数据库 mapreduce 与 group 效率比较
- mongo数据库的group 学习例子
- [Mongo]分组统计时间 aggregate,group,distinct
- mongo 中 高级查询之 group
- spring mongo 下 mapreduce 和 group的用法
- [Mongo] 按时间分组统计(group时间格式化)
- MONGO
- mongo
- mongo
- mongo
- mongo
- mongo
- 【平衡树启发式合并】POJ1741[Tree]题解
- pat 1043. Is It a Binary Search Tree (25)
- oracle的分页(rownum)
- A.2多任务网段扫描练习 (增加功能)
- ZCMU—C
- Mongo Group
- 质数求法
- uva 851 Flooded!
- Servlet之间的跳转
- FPGA学习(第1节)-Quartus II 12.1创建FPGA-DEMO项目(LED流水灯)
- 微信开放平台Android应用签名的本质及如何获取
- 用smarty模板做数据实现修改、分页等功能
- Python与机器学习1——scikit-learn使用的简易框架
- Unity3d导入模型尺寸问题