首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoRepository JSON日期查询(Spring)

MongoRepository JSON日期查询(Spring)
EN

Stack Overflow用户
提问于 2017-07-26 22:32:02
回答 1查看 1.4K关注 0票数 2

我正在尝试使用make我自己的查询一个:

代码语言:javascript
复制
@Repository
public interface LogEntryRepository extends MongoRepository<LogEntry,String> {

    @Query("{'created_at' : {{ $gte: ISODate(?0)},{$lt: ISODate(?1)}}, " +
        "$or: [{'site': {$regex: ?2}}, {'login': {$regex: ?2}}, {'ip': {$regex: ?2}} ]" +
        "}")
    public Page<LogEntry> findByDateTimeBetweenAndCriteria(String isoStartDate, String isoEndDate, String searchTerm, Pageable page);

}

我想要实现的是用关键字搜索过时的日志。上面提到的是一个解析错误:

代码语言:javascript
复制
        Caused by: com.mongodb.util.JSONParseException: 
    {'created_at' : { $gte: ISODate("_param_0"), $lt: ISODate("_param_1")}, $or: [{'site': {$regex: "_param_2"}}, {'login': {$regex: "_param_2"}}, {'ip': {$regex: "_param_2"}} ]}
                            ^

如果我用简单的ISODate(?0)替换?0,它会生成Page 1 of 0 containing UNKNOWN instances

字符串isoStartDate & isoEndDate是由java.util.Date生成的,看起来像这个2017-06-27T00:00:00.000Z

我怎么才能把我的约会对象放进去?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-27 03:11:13

ISODate是一个Mongo结构,用于创建BSON日期,并且绝对不是有效的JSON,这就是我认为您的错误正在抱怨的问题。

按照这个ISODate中的建议,尝试用{ '$date' : '?0' }{ '$date' : '?1' }替换上面的answer调用。所有字符串可能都需要用单引号包围。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45338505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档