[英]MongoDB (Java driver) - Query date in interval
我是MongoDB的新手,正嘗試使用Java驅動程序進行查詢以獲取日期間隔內的一些記錄。
在外殼中,當我這樣做時:
db.messages.find({
"date" : {
$gt: ISODate("2014-01-01T00:00:00Z"),
$lt: ISODate("2014-01-01T00:00:05Z")
}
});
它返回4條記錄。
在Java中,我這樣做:
try {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date d1 = dateFormat.parse("2014-01-01 00:00:00");
Date d2 = dateFormat.parse("2014-01-01 00:00:05");
BasicDBObject query = new BasicDBObject();
query.append("date", new BasicDBObject().append("$gte", d1).append("$lt", d2));
System.out.println(query);
}
catch (ParseException ex) { Logger.getLogger(MongoDbNavigationMessageDao.class.getName()).log(Level.SEVERE, null, ex); }
如果我搜索查詢,則沒有任何記錄。 此外,System.out.println(query);的輸出; 是:
{ "date" : { "$gte" : { "$date" : "2013-12-31T23:00:00.000Z"} , "$lt" : { "$date" : "2013-12-31T23:00:05.000Z"}}}
如您所見,日期有誤...發生了什么事??
我發現它的打印日期不一樣,因為MongoDB考慮了時區。 我因為錯字而沒有結果...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.