"
g
t
"
、
"
gt" 、"
gt"、"gte"、 “
l
t
"
、
"
lt"、 "
lt"、"lte”(分别对应">"、 “>=” 、"<" 、"<=")
首先是mongo查询时得语法
db.user.find({ "startTime" : { "$gte" : ISODate("2017-04-20T00:00:00Z")
, "$lt" : ISODate("2017-04-21T00:00:00Z") } }).count()
@Autowired
MongoTemplate mongoTemplate;
/**
* 将date转成ISODate 以便mongo识别
* @param dateStr
* @return
*/
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 再调用 dateToISODate() 方法
* @param strDate
* @return
*/
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;
}
下面是方法内得内容
Date startTime = strToDateLong("2021-02-01 00:33:44");
Date endTime = strToDateLong("2021-02-06 10:56:03");
Query query = new Query(Criteria.where("class").is("一年级")
.andOperator(
Criteria.where("startTime").lt(dateToISODate(startTime)),
Criteria.where("endTime").gte(dateToISODate(endTime))
));
List<User> userList = mongoTemplate.find(query,User.class);