我正在尝试使用 mongorepository 或 mongooperations 或 mongotemplate 从 mongodb 获取在今天创建的所有记录我只想按日期匹配所有记录而不是时间戳。请参考下面我的 mongodb 输入。
/* 1 */
{
"_id" : ObjectId("59135f13fc90f22b00c91df2"),
"_class" : "com.vistors.management.domains.EmployeeVisitor",
"checkedIn" : true,
"checkedInDate" : ISODate("2017-05-10T18:42:27.630Z"),
"visitor" : {
"$ref" : "VISITOR",
"$id" : ObjectId("59135f13fc90f22b00c91def")
},
"employee" : {
"$ref" : "EMPLOYEE",
"$id" : ObjectId("59135f13fc90f22b00c91df0")
}
}
/* 2 */
{
"_id" : ObjectId("59135f13fc90f22b00c91df3"),
"_class" : "com.vistors.management.domains.EmployeeVisitor",
"checkedIn" : true,
"checkedInDate" : ISODate("2017-05-10T18:42:27.638Z"),
"visitor" : {
"$ref" : "VISITOR",
"$id" : ObjectId("59135f13fc90f22b00c91dee")
},
"employee" : {
"$ref" : "EMPLOYEE",
"$id" : ObjectId("59135f13fc90f22b00c91df0")
}
}
/* 3 */
{
"_id" : ObjectId("5913ec9eafeb7a1e8df79d5f"),
"_class" : "com.vistors.management.domains.EmployeeVisitor",
"checkedIn" : true,
"checkedInDate" : ISODate("2017-05-11T04:46:22.425Z"),
"visitor" : {
"$ref" : "VISITOR",
"$id" : ObjectId("59135f13fc90f22b00c91dee")
},
"employee" : {
"$ref" : "EMPLOYEE",
"$id" : ObjectId("59135f13fc90f22b00c91df0")
}
}
我想从 db 中获取所有与 checkInDate 匹配的条目作为今天的日期,例如:
@Query("{'checkedInDate': {$gte: ?0, $lte:?0 }}")
List<EmployeeVisitor> findAllCheckedInToday(ZonedDateTime date)
或者
@Override
public List<EmployeeVisitor> getTodayRecords() {
//Date date = Date.from(instant);
Query query = new Query().addCriteria(Criteria.where("checkedInDate").is(new Date()));
return mongoTemplate.find(query, EmployeeVisitor.class);
//Criteria.where("expenseDate").gte(calendar1.getTime()).lte(calendar2.getTime()).and("userid").is(uid);}
}
但是我未能达到所需的结果,我无法理解如何从带有日期而不是带有时间戳的日期的数据库中查询。
谢谢你的帮助。
吉丁