我在我的项目中使用 MongoDB 和 Mongoid。我在订购“时间”字段数据时遇到了一些困难。
如您所知,即使您Time
在 Mongoid 文档中设置了字段类型,时间数据也会以这种格式存储(请注意,我使用 +2 小时偏移量来获取我自己的时区时间而不是 UTC):
Mon, 31 Dec 2012 08:30:00 EET +02:00
我不确定我是否遗漏了什么,但这就是发生在我身上的事情。
我想在Time
我的一个视图中使用该数据。我需要按 ONLYHour:Minute
格式对一些相关的东西进行排序。我不希望 Rails 处理字段数据的 DATE 部分。因为每当将新Time
记录插入数据库时,都会将日期信息作为当前日期。
问题是:
因为它为每条新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 大!
那么这个问题的解决方法是什么?
提前感谢。