MongoDB 用MongoTemplate查询指定时间范围的数据

Posted exmyth

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB 用MongoTemplate查询指定时间范围的数据相关的知识,希望对你有一定的参考价值。

mongoDB大于小于符号对应:

> 大于 $gt
< 小于 $lt
>= 大于等于 $gte
<= 小于等于 $lte

要查询同一个时间多个约束可能出现的error:

org.springframework.data.mongodb.InvalidMongoDbApiUsageException:
Due to limitations of the com.mongodb.BasicDocument, you can‘t add a second ‘createdDate‘ expression specified as ‘createdDate:
Document{{$lt=2018-01-06}}‘. Criteria already contains ‘createdDate: Document{{$gte=2017-12-31}}‘.

解决办法:
要查询同一个字段多个约束需要用andOperator:

Query query = new Query(
Criteria.where("ip").is(ip)
.andOperator(
Criteria.where("createdDate").lt(endDate),
Criteria.where("createdDate").gte(startDate)));


以上是关于MongoDB 用MongoTemplate查询指定时间范围的数据的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB $addFields 使用 org.springframework.data.mongodb.core.MongoTemplate

使用 Spring Boot 和 MongoTemplate 对 MongoDB 结果进行排序

更新查询中的 MongoTemplate 确定性顺序

MongoTemplate实现根据某个字段分类查询

没有名为“mongoTemplate”的 bean 可用。 Spring Boot + MongoDB

mongodb-mongotemplate进行地理坐标操作