mongo学习笔记(四):java中使用group
2015-12-04 15:19
429 查看
在java中使用mongo的group
目标:
使用group
mongo中时间格式是IOSDate
例如:"2015-12-04 00:00:00"
直接用String转Date =>"2015-12-03T16:00:00Z"
而我想转成"2015-12-04T00:00:00Z",,比目标少了8小时(时区)
目前没有什么办法,非常屌丝的写了以下方法,有更好的方法请务必告诉我,谢谢!!
最后,调用
以上代码经过我部分手动修改,不保证编译通过,仅作参考╮(╯▽╰)╭
目标:
private Mongo mg = null; private DB db; private DBCollection dbCollection; public void init(String IP,int port,String DB) { try { mg = new Mongo(IP,port); } catch (UnknownHostException e) { e.printStackTrace(); } catch (MongoException e) { e.printStackTrace(); } //获取DB;如果默认没有创建,mongodb会自动创建 db = mg.getDB(DB); }
使用group
public DBObject group(String start,String end,int age) { dbCollection = db.getCollection("person"); BasicDBObject cond= new BasicDBObject(); BasicDBObject dt= new BasicDBObject(); dt.put("$gte",fromISODate(start));//大于等于 dt.put("$lt",fromISODate(end));//小于 cond.put("dt", dt); cond.put("age",age); BasicDBObject key = new BasicDBObject("name", true); BasicDBObject initial = new BasicDBObject("person",new ArrayList()); String reduce = "function(doc,out){out.person.push(doc.name);}"; String finalize = "function(out){out.count=out.person.length;}"; DBObject list = dbCollection.group(key, cond, initial, reduce, finalize); return list; }
mongo中时间格式是IOSDate
例如:"2015-12-04 00:00:00"
直接用String转Date =>"2015-12-03T16:00:00Z"
而我想转成"2015-12-04T00:00:00Z",,比目标少了8小时(时区)
目前没有什么办法,非常屌丝的写了以下方法,有更好的方法请务必告诉我,谢谢!!
public static Date fromISODate(String time){ Date date=formatDate(time); Calendar ca=Calendar.getInstance(); ca.setTime(date); ca.add(Calendar.HOUR_OF_DAY, 8); return ca.getTime(); } public static Date formatDate(String time){ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //sdf.setTimeZone(TimeZone.getTimeZone("GMT+8")); try { return sdf.parse(time); } catch (ParseException e) { e.printStackTrace(); return null; } }
最后,调用
public static void main(String[] args){ // TODO Auto-generated method stub mongoDB4CRUD.init("192.68.68.83", 19000, "test"); DBObject list = mongoDB4CRUD.group("2015-01-01 00:00:00", "2015-12-01 00:00:00",25); JSONArray jsonArray= JSONArray.fromObject(list); for(int i=0;i<jsonArray.size();i++) { JSONObject jo = (JSONObject) jsonArray.get(i); System.out.println(jo.get("name").toString()); } }
以上代码经过我部分手动修改,不保证编译通过,仅作参考╮(╯▽╰)╭
相关文章推荐
- javaBean之单相互的复制
- 解决Eclipse创建android项目无法正常预览布局文件问题的方法
- java 内存分配
- Hive-命令行基本操作和java API访问hive数据库
- java简单的压缩方法(zip压缩)
- 控制输出java_control-output
- SpringMVC_异常处理
- 菱形 JAVA代码
- JavaEE_Mybatis_SpringMVC_框架整合_lesson1_简单的SSM框架搭建_使用原始Dao开发方式进行测试
- Exception in thread "main" java.lang.NoClassDefFoundError: javax/persistence/Cacheable
- java 获取本机的IP地址
- Spring Security3 - MVC 整合教程 (初识Spring Security3)
- Exception in thread "main" java.lang.NoClassDefFoundError: javax/transaction/Synchronization
- JAVA创建一个登录面板的代码
- eclipse中server location为灰色,不能修改
- Java核心类库
- java程序向mysql插入中文变问号
- Eclipse + Idea + Maven + Scala + Spark +sbt
- Java编程思想 之 共享受限资源
- MyEclipse java was started but returned exit code=-1