使用以下内容在mongo shell中正确获取10秒时间范围内的记录提取查询:
db.getCollection('collection-name').find({"@timestamp":{"$gte": ISODate("2018-02-07T01:51:45.005Z"),"$lt": ISODate("2018-02-07T01:51:55.005Z")}});
但是在spring-data-mongodb中我无法使用以下方法获取数据。我无法在ISODate("String value")
注释或mongo查询条件中定义new Date("String value")
或@Query
。
方法1:Mongo Repository&查询
@Query("{'@timestamp' :{'$gte':?0, '$lt':?1}}")
public List<collection-name> findByTimestamp( Date date,Date newdate);
方法2:将Mongo Query与条件
一起使用Query query = new Query();
query.addCriteria(Criteria.where("@timestamp").gte( date).lt(newdate));
其中日期和新日期字段为:
DateFormat df=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS\'Z\'");
Date date = df.parse("2018-02-07T01:51:45.005Z");
Date newdate = df.parse("2018-02-07T01:51:55.005Z");