mongodb - MongoRepository @Query 无法将字符串解析为日期
问题描述
首先,我的问题是通过 Spring MongoDb 的 MongoRepository 在 MongoDB 中搜索集合。
我的对象:
{
"_id" : ObjectId("5c78e1f447f39c2eacb229d7"),
"lab" : "xxx",
"type" : "Holiday",
"description" : "Lunar New Year",
"start_date" : ISODate("2019-02-04T02:37:42.152Z"),
"end_date" : ISODate("2019-02-08T06:37:42.152Z"),
"all_day" : true,
"_class" : "xxx.Event"
}
我可以在 Mongo 查询中按照我的意愿做:
db.getCollection('event').find({"start_date" : {$gte :ISODate( "2019-02-03T02:37:42.152Z") , $lte :ISODate( "2019-02-08T02:37:42.152Z")}})
(您可以用新日期替换 ISODate)
但要在春天做到这一点,我想这样做:
@Query(" $or: [ {start_date : {$gte :ISODate( ?0 ) , $lte :ISODate( ?1)}} , {end_date : {$gte :ISODate( ?0) , $lte :ISODate( ?1)}} ] } ")
List<Event> findAllEventByTime(String from, String to);
最后得到
@Query("{ 'start_date' : {$gte : {'$date': '?0'}, $lte :{'$date': '?1'} }}")
List<Event> findAllEventByTime(String from, String to);
但再一次,我遇到了解析问题:
2019-03-22 10:09:48.261 错误 9316 --- [XNIO-2 task-1] ozproblem.spring.common.AdviceTrait:内部服务器错误
org.bson.json.JsonParseException:无法将字符串解析为 org.bson.json.JsonReader.visitDateTimeExtendedJson 的日期(JsonReader.java:1057)
我尝试推荐:
尝试参数:Fri Mar 22 10:09:48 ICT 2019 和 2019-03-22T03:09:48.227Z 和 2016-04-14 00:00:00
所有这一切都在下降......你们能帮我解决它吗?
工作流程:来自 FE(字符串)的参数 ~> 转到 BE ~> 如上所述调用回购
解决方案
您可以spring data jpa
为以下相同的方法制作方法:-
List<Event> findByStart_dateIsAfterAndEnd_dateIsBefore(Date startDate, Date endDate);
推荐阅读
- zoho - 什么会导致用户在报表中只能看到一行?浏览器问题?
- android - 由于明显错误,Admob 应用程序不断崩溃
- node.js - Angular 2 Universal 如何部署到heroku?
- image-processing - 垂直空间频率的FFT指数
- android - 使用后退按钮返回 ViewPager 时为空白
- javascript - 将活动类添加到所选项目
- javascript - 为什么输出是 01122?
- ruby-on-rails - 单击反应路由器中的后退/前进按钮时如何修复数据重复/删除
- r - `dplyr::summarise` 不接受外部函数
- java - 在 docker 中构建 openjdk 11 javafx 应用程序