簡體   English   中英

MongoDB(Java驅動程序)-查詢時間間隔

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM