我正在尝试使用Spring Java中的mongoTemplate查找某个日期之前的所有行。虽然有很多旧记录,但没有返回任何行。
有什么问题吗?
Calendar cal = GregorianCalendar.getInstance();
cal.add( Calendar.DAY_OF_YEAR, -73);
Date prevDate = cal.getTime();
List<AuditTrailDTO> dt = mongoTemplate.find(Query.query(Criteria.where("AUDIT_CREATE_DATETIME").lte(prevDate)), AuditTrailDTO.class);Mongo DB中的AUDIT_CREATE_DATETIME存储格式如下:
Audit_Create_DateTime:2019-07-10 08:47:02.078发布于 2019-09-25 13:02:30
如果Audit_Create_DateTime的类型是Date,那么它应该可以工作,所以我假设Audit_Create_DateTime是String类型。
您可以执行以下操作来对String字段执行less-than-equals逻辑;
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Query query = Query.query(Criteria.where("AUDIT_CREATE_DATETIME").lte(dateFormat.format(prevDate)));
List<AuditTrailDTO> dt = mongoTemplate.find(query, Customer.class);这将返回正确的结果,尽管我建议将Date值正确地存储为正确的类型,而不是String类型。
https://stackoverflow.com/questions/58087409
复制相似问题