我正在尝试使用make我自己的查询一个:
@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);
}我想要实现的是用关键字搜索过时的日志。上面提到的是一个解析错误:
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
我怎么才能把我的约会对象放进去?
发布于 2017-07-27 03:11:13
ISODate是一个Mongo结构,用于创建BSON日期,并且绝对不是有效的JSON,这就是我认为您的错误正在抱怨的问题。
按照这个ISODate中的建议,尝试用{ '$date' : '?0' }和{ '$date' : '?1' }替换上面的answer调用。所有字符串可能都需要用单引号包围。
https://stackoverflow.com/questions/45338505
复制相似问题