博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java实现MongoDB的日期(Date)分组功能
阅读量:5972 次
发布时间:2019-06-19

本文共 1729 字,大约阅读时间需要 5 分钟。

  在上篇博文中,我通过封装的一个Java接口实现了MongoDBGroup功能,但是没有讲怎么根据日期Date查询,这里补充一下,如何完善MongoDB的日期Group功能。

  在实现Group功能时,通常还要附带一些条件,查询分组时只查询状态为已完成的或者未完成的,再或者查询某个日期时间段内符合条件的分组。这时候,如果在Reduce中设置符合条件的日期再计数,你会发现MongoDB完全忽略了日期。为什么?因为语法不对。

  在MongoDB中查询特定条件的分组时,应该把这些条件放到Condition中,具体怎么做,还是看下面的代码吧。

public String getCTOStatistic() throws Exception {        String ctoTaskType = getParameterValue("ctoTaskType").toString();        String startDate = getParameterValue("startDate").toString();        String endDate = getParameterValue("endDate").toString();        DBObject initial = new BasicDBObject();        DBObject index = new BasicDBObject();        BasicDBObject cond = new BasicDBObject();        BasicDBObject dateCondition = new BasicDBObject();                  index.put("count", 0);        index.put("ctoPerson", "");        initial.put("ctoPerson", index);                  cond.put("ctoStatus", "Finished");        if(StringUtils.isNotEmpty(ctoTaskType)){            cond.put("taskId", ctoTaskType);        }        if(StringUtils.isNotEmpty(startDate)){            dateCondition.append("$gte", DateUtil.toDate(startDate));        }        if(StringUtils.isNotEmpty(endDate)){            dateCondition.append("$lt", DateUtil.toDate(endDate));        }        cond.put("jobCreateTime",dateCondition);                            String reduce = "function (doc, out) { "            + " out.ctoPerson.count = out.ctoPerson.count+=1; "            + " out.ctoPerson.ctoPerson = doc.ctoPerson;"        + "}";                            BasicDBList group = (BasicDBList) ctoJobService.group(                new String[] { "ctoPerson"}, cond, initial, reduce, null);                  this.jsonResult = group.toString();        return SUCCESS;    }

转载地址:http://pqfox.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
Exadata VM CELL 上添加新磁盘--扩充空间
查看>>
zabbix企业应用之监控mysql 5.6版本
查看>>
我的友情链接
查看>>
BGP选路原则与专有命令的研究
查看>>
关于java的引用、C++的指针、引用的深入分析
查看>>
windows cmd 下的主要命令
查看>>
CMD 修改Host文件 BAT
查看>>
linux用户管理的命令及手动添加用户
查看>>
Windows 7 家庭版如何启用Administrator账户
查看>>
JSP开发过程遇到的中文乱码问题及解决方案
查看>>
我的友情链接
查看>>
mfs权威指南
查看>>
只是你没那么重要罢了
查看>>
javabean的初步认识学习
查看>>
表结构设计的第一二三范式
查看>>
1.4.2.2 在Linux上设置环境变量
查看>>
SSM三大框架整合详细教程(Spring+SpringMVC+MyBatis)【转】
查看>>
自建框架知识点二路由器
查看>>
springBoot(16):集成redis
查看>>