Java实现MongoDB的日期(Date)分组功能
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,在上篇博文中,我通过封装的一个Java接口实现了MongoDB的Group功能,但是没有讲怎么根据日期Date查询,这里补充一下,如何完善MongoDB的日期Group功能。在实现Group功能时,通
千家信息网最后更新 2025年02月06日Java实现MongoDB的日期(Date)分组功能
在上篇博文中,我通过封装的一个Java接口实现了MongoDB的Group功能,但是没有讲怎么根据日期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; }
日期
条件
查询
功能
分组
不对
上篇
代码
接口
时间
时间段
状态
语法
还是
面的
中设
封装
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全实名
技术培训网络安全
数据库咨询
湖北云店网络技术有限公司
对日软件开发优势
中职软件开发人才培养方案
软件开发目的怎样描述
什么是增量数据库
好家伙下载软件开发
平安校园建设网络安全征文
聊天类软件用什么软件开发
浪潮服务器管理网口干什么用
在access数据库中表示
热血传奇单机版服务器为空
steam专用服务器报错
广州地产软件开发方案
一个软件如何改服务器
数据库中的更新语句怎么写
数据库字段类型实型
软件开发模型 winwin
中小学沉迷于网络安全
高陵软件开发工程
谢希仁《计算机网络技术》
昆山正规的零件加工管理软件开发
学习软件开发课程
网购服务器怎么测试
国家安全局情报数据库
最好用的游戏服务器
郴州软件开发税务筹划
网易版怎么找回服务器