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

  • Post author:
  • Post category:其他


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)));



版权声明:本文为xueshr原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。