2011-09-12 80 views
8

這已經被問了很多,但我仍然面臨着一些問題。日期在Mongoid中查詢

我有我收到的日期和存儲爲日期。我需要查詢大於和小於,所以我改變它爲時間,再試一次,但我得到奇怪的結果。

我這樣做

Class.where(:event_date.gt => Time.parse(Date.today)) 

和我老了記錄,20世紀40年代,60年代等。我試圖通過在最後加入.utc來轉換時間,只比較Date.today,但是目前爲止還沒有解決這個問題。這是由Mongoid生成的選擇器

selector: {:date_utc=>{"$gte"=>Sat Sep 10 21:00:00 UTC 2011}}, 

我以這種格式「2011-09-11」接收日期並將其存儲在時間字段中。嘗試解析,作爲時間utc以及,沒有運氣。

任何想法?我正在使用Mongoid 2.0.2。後續版本似乎與我正在使用的其他擴展程序不兼容。

[更新]

所以這個問題是1970年顯然以前的老日期。我現在如何處理它們是個問題。

回答

2

這是Mongo中已知的一個bug。請參閱ISSUE 405

原因是Mongo使用無符號數來存儲日期,所以在時代之前的任何事情都會在未來展開。

幸運的是,今天發佈的穩定版本2.0已經解決了這個問題。升級到這個版本應該可以解決你的問題。

+0

謝謝。由於這個問題自去年開放以來,我似乎很幸運。 這是否意味着我需要升級Mongoid?這似乎給我帶來了問題 –