2016-02-03 167 views
0

我有以UTC格式存儲在MongoDB中的日期的文檔:2016-01-28T01:00:00Z其中Z代表UTC時間。以UTC格式從MongoDB獲取文檔

我想要做的是找到所有文件,其日期尚未過期(date_stored_in_DB>今天的日期)。不過,我很困惑這樣做的正確方法。

方法1:我應該將今天的日期轉換爲Z格式(如上所示),並開始查看數據庫嗎?這樣它只會匹配字符串。

方法2:我應該從數據庫中獲取所有記錄並將每個日期轉換爲可解析的日期格式(如02/03/2016)並與今天的日期進行比較嗎?我在想這裏的正則表達式,但我不知道

方法3:您的建議?

我正在使用reactivemongo和scala &玩這個框架來完成這件事。

回答

1

最簡單的方法就是今天的日期轉換爲UTC:

val utcString = new DateTime(now).withZone(DateTimeZone.UTC) 

您可以將此值傳遞給$gt MongoDB的查詢檢索未過期的記錄。

3

如果您存儲在您的日期作爲ISODate類型,那麼你可以查詢反對它,像這樣:

db.yourcollection.find({ 「日期」:{$ GTE:新ISODate(「2016-01- 28T01:00:00Z「)}});

$ gte操作符查詢大於或等於。有關更多信息,請參閱this

查詢所有記錄然後過濾它們通常不是一個好主意。