2012-06-18 183 views
2

我有一個mongo數據庫,我在單獨的字段中存儲日期和時間(我沒有能力更改此設置)。谷歌搜索的時候,我發現人們打破領域分成2份,1日和1時,如查詢的日期和時間的例子:在mongo的時間範圍內查詢

{"dateField": {"d": "06/18/2012" "t": "12:00:00 AM"}} 
{"timeField": {"d": "06/18/2012" "t": "12:07:10 PM"}} 

我見過的人(以及已經能夠自己)查詢的日期部分:

db.collection.find({"dateField.d": {"$gte": "06/18/2012"}}) 

我的問題是我不能得到準確的結果,隨着時間的推移嘗試同樣的事情:

db.collection.find({"timeField.t": {"$gte": "12:00:00 PM"}}) 

有沒有我應該格式化我的實時數據查詢它以特定的方式?還是有更好的方式來存儲時間數據,以便我可以查詢時間(不依賴於日期)?

回答

2

您需要以真實日期格式或數字形式存儲數據。當你在做這些搜索時,比較使用的是lexicography,這不是你想要的。如果你確實想使用字符串,你應該使用其中一個ISO formats它的工作。

+0

這聽起來像是一種糟糕的方式[將日期存儲爲字符串]。 – monksy

+0

謝謝,轉換到ISO格式工作。 @monksy雖然我更喜歡將日期和時間作爲對象存儲,但問題是,將日期信息和時間信息保存在單獨的字段中,我需要的只是時間和時間。不幸的是,我可以找到的每個對象表示都與日期結合在一起(隨着時間的推移和數據發生變化,日期可能會或可能不會保持正確)。 –