0
我想獲取特定日期的約會。春季引導:mongoDB日期比較不起作用
所以我通過fromDate
和toDate
找到該日期範圍內的數據。
這是我的代碼,其中查詢方法正在改變傳遞給它的實際日期。
我也粘貼了這個代碼在彈簧啓動形成的查詢。
DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS\'Z\'");
fromDate = "2017-10-06T00:00:00.000Z";
toDate = "2017-10-07T23:00:00.000Z";
Date startDate,endDate;
startDate = dateFormatter.parse(fromDate);
endDate = dateFormatter.parse(toDate);
System.out.println(startDate);
System.out.println(endDate);
Query q = new Query().addCriteria(new Criteria().orOperator(
new Criteria().andOperator(Criteria.where("fromDate").gte(startDate),
Criteria.where("fromDate").lte(endDate)),
new Criteria().andOperator(Criteria.where("toDate").gte(startDate),
Criteria.where("toDate").lte(endDate))
));
System.out.println(startDate);
System.out.println(endDate);
System.out.println(q); //here in query m getting different date
List<Appointment> result= mongoTemplate.find(q, Appointment.class);
System.out.println(result);
當我試圖打印查詢,它打印以下JSON這是錯誤的:
{
"$or": [
{
"$and": [
{
"fromDate": {
"$gte": {
"$date": "2017-10-05T18:30:00.000Z" //expected date 2017-10-06
}
}
},
{
"fromDate": {
"$lte": {
"$date": "2017-10-07T17:30:00.000Z"
}
}
}
]
},
{
"$and": [
{
"toDate": {
"$gte": {
"$date": "2017-10-05T18:30:00.000Z"
}
}
},
{
"toDate": {
"$lte": {
"$date": "2017-10-07T17:30:00.000Z"
}
}
}
]
}
]
}
我的預產期是 「2017-10-06T00:00:00.000Z」 和「2017年-10-07T23:00:00.000Z」。