用Query怎么封装查询本月的日期
时间: 2023-07-06 09:35:13 浏览: 117
如果您正在使用Query来查询MongoDB,可以使用以下代码来查询本月的数据:
```java
// 获取当前时间
Date currentDate = new Date();
// 获取本月的开始时间和结束时间
Date firstDayOfMonth = Date.from(ZonedDateTime.ofInstant(currentDate.toInstant(), ZoneId.systemDefault()).with(TemporalAdjusters.firstDayOfMonth()).toInstant());
Date lastDayOfMonth = Date.from(ZonedDateTime.ofInstant(currentDate.toInstant(), ZoneId.systemDefault()).with(TemporalAdjusters.lastDayOfMonth()).toInstant());
// 封装查询条件
Query query = new Query();
Criteria criteria = Criteria.where("date_field_name").gte(firstDayOfMonth).lte(lastDayOfMonth);
query.addCriteria(criteria);
// 查询本月的数据
List<Document> result = mongoTemplate.find(query, Document.class, "your_collection_name");
// 遍历结果
for (Document document : result) {
System.out.println(document.toJson());
}
```
上述代码获取当前时间,然后使用Java 8的日期API获取本月的第一天和最后一天,并使用这些日期创建一个`Criteria`对象,用于指定查询条件。`date_field_name`应替换为包含日期时间的字段的名称。然后将`Criteria`对象添加到`Query`对象中,并使用`mongoTemplate`进行查询。最后,遍历结果以访问匹配的文档。
阅读全文