mongotemplate范围查询_Java MongoTemplate的时间范围查询

前端返回一个时间戳格式,需要转化为iso才能被mongo识取

这边是有两个筛选条件,一个是id,一个是时间范围

lt:小于   lte: 小于等于   gte :大于等于   gt: 大于

@Override

public ListgetUserRouteAndTime(String id, Long date) {

Date date1 = new Date(date);

Calendar calendar = Calendar.getInstance();

calendar.setTime(date1);

calendar.add(Calendar.MONTH, 1);

Query query = new Query();

query.addCriteria(Criteria.where("inspectStaffid").is(id)

.andOperator(

Criteria.where("inspectDate").lt(dateToISODate(calendar.getTime())),

Criteria.where("inspectDate").gte(dateToISODate(date1))));

return mongoTemplate.find(query, InspectPlaceRecord.class);

}

public static Date dateToISODate(Date dateStr) {

Date parse = null;

try {

// 解析字符串时间

SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");

parse = format.parse(format.format(dateStr));

} catch (ParseException e) {

e.printStackTrace();

}

return parse;

}

当然也有可能是前端传过一个字符串,我们需要转为date

public static Date strToDateLong(String strDate) {

Date strtodate = null;

try {

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

strtodate = formatter.parse(strDate);

} catch (ParseException e) {

e.printStackTrace();

}

return strtodate;

}

你可能感兴趣的:(mongotemplate范围查询_Java MongoTemplate的时间范围查询)