プロジェクトで MongoDB と Mongoid を使用しています。「時間」フィールド データの順序付けに問題があります。
ご存知のようTime
に、Mongoid ドキュメント内でフィールド タイプを設定しても、時間データはこの形式で保存されます (UTC の代わりに +2 時間のオフセットを使用して独自のタイムゾーンの時間を取得していることに注意してください)。
Mon, 31 Dec 2012 08:30:00 EET +02:00
何かが欠けているかどうかはわかりませんが、これが私に起こることです。
Time
ビューの 1 つの中でそのデータを使用したいと考えています。関連するものをHour:Minute
フォーマットのみでソートする必要があります。フィールド データの DATE 部分を Rails に処理させたくありません。新しいレコードが DB に挿入されるたびにTime
、日付情報が CURRENT DAY として取得されるためです。
問題は次のとおりです。
そのため、新しいレコードごとに CURRENT DAY が保存されるため、新しいレコードを取得Time
しようとするorder_by("hour DESC")
と、データの HOUR 部分が大きくても、常に最初に取得されます!
例えば:
First data:
=> Tue, 27 Nov 2012 19:50:00 EET +02:00
Second data:
=> Mon, 24 Dec 2012 18:45:00 EET +02:00
ご存知のように、通常、19:50 は 18:45 よりも大きくなります。しかし、このシナリオでは、Rails がday
計算に情報を取り込むため、18:45 は 19:50 よりも大きく見えます!
では、この問題の回避策は何ですか?
よろしくお願いします。