java mongodb求某天的记录

该篇博客讲述了如何在Java中利用MongoDB查询库中指定日期范围内的记录。通过前端传入的时间参数,经过格式转换和时间截取,设置查询条件为当天00:00到23:59的时间段,最后按DateTime降序排列并进行分页查询。内容涉及到日期处理、MongoDB查询以及Java的日期和时间操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java mongodb求某天的记录

 			Criteria criteria = new Criteria();


            Query query = new Query();
            if (time != null && !time.equals("")) {
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");

                Date date = null;
                try {
                    date = format.parse(time);
                } catch (ParseException e) {
                    e.printStackTrace();
                }

                //设置开始时间

                Calendar todayStart = Calendar.getInstance();
                todayStart.setTime(date);
                todayStart.set(Calendar.HOUR_OF_DAY, 0);
                todayStart.set(Calendar.MINUTE, 0);
                todayStart.set(Calendar.SECOND, 0);
                todayStart.set(Calendar.MILLISECOND, 0);
                Date todayStartTime = todayStart.getTime();


                //设置结束时间
                Calendar todayEnd = Calendar.getInstance();
                todayEnd.setTime(date);
                todayEnd.set(Calendar.HOUR_OF_DAY, 23);
                todayEnd.set(Calendar.MINUTE, 59);
                todayEnd.set(Calendar.SECOND, 59);
                todayEnd.set(Calendar.MILLISECOND, 999);
                Date todayEndTime = todayEnd.getTime();
                query.addCriteria(Criteria.where("DateTime").gte(todayStartTime).lte(todayEndTime));

            }

            query.with(Sort.by(Sort.Direction.DESC, "DateTime"));

            query.skip(size * (page - 1)).limit(size);


            List<Map> results = mongoTemplate.find(query, Map.class, "log_Manager");

time是前端传递的时间数据,格式为:2021-08-03

### Java 操作 MongoDB 的方法 在Java中操作MongoDB主要依赖于官方提供的驱动程序。通过该驱动,开发者能够执行诸如创建、读取、更新以及删除文档等基本操作。 #### 创建连接并获取集合对象 为了与MongoDB交互,在代码初始化阶段需建立到数据库服务器的链接,并指定要使用的特定数据库及其下的集合[^2]: ```java public class MongoDB4CRUDTest { private Mongo mg = null; private DB db; private DBCollection users; public void init() throws UnknownHostException { this.mg = new Mongo("localhost", 27017); this.db = mg.getDB("testdb"); this.users = db.getCollection("users"); } } ``` #### 插入数据至集合 当准备向`users`集合插入新记录时,可以通过构建BasicDBObject实例来表示单条记录的内容,之后调用insert方法完成实际写入动作[^4]: ```java // 构建待插入的数据项 BasicDBObject document = new BasicDBObject(); document.put("name", "Alice").put("age", 30); // 执行插入命令 WriteResult result = users.insert(document); System.out.println("Insert Result: " + result.toString()); ``` #### 更新现有文档 如果想要修改已存在的某份或多份文件,则先定义查询条件用于定位目标文档,再制定相应的更改内容,最后利用update函数实施变更操作: ```java // 定义匹配规则(即查找条件) BasicDBObject query = new BasicDBObject().append("name", "Bob"); // 设置新的属性值 BasicDBObject updateFields = new BasicDBObject().append("$set", new BasicDBObject().append("age", 35)); // 应用更新语句 WriteResult writeResult = users.update(query, updateFields); System.out.println("Update WriteResult=" + writeResult); ``` #### 删除符合条件的文档 同样地,移除不需要的数据也遵循类似的模式——先是确立筛选标准,接着借助remove指令实现清除目的: ```java // 设定欲删除的对象特征描述 BasicDBObject deleteCriteria = new BasicDBObject().append("_id", someObjectIdValueHere); // 发起删除请 WriteResult removalOutcome = users.remove(deleteCriteria); System.out.println("Remove Outcome:" + removalOutcome); ``` 除了上述基础功能外,还存在更多高级特性等待探索,比如聚合框架的支持、地理空间索引等功能都可以极大增强应用程序的能力[^1]。 另外值得注意的是,在真实项目里应当重视错误捕捉机制的设计,确保即使遇到网络中断或其他意外情况也能保持系统的稳定性;同时合理配置客户端连接池参数有助于优化资源利用率和响应速度[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值