"gt"、"gt" 、"gt""gte"、 “lt"、"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);
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐