何らかの理由で:
Analytic.where({:ga_date.gte => '2010-09-01'}).count() # greater than or equal to
0 を返しますが、
Analytic.where({:ga_date.gte => Time.parse('2010-09-01')}).count()
レコード (ドキュメント) の数である 230 が返されます。
実は、一番上の一行目は別のケースで動いているので、かなり奇妙です。
比較できるのは日付のみです。
Analytic.where({:ga_date.lte => Time.parse('2010-09-10')}).count() # less than or equal to
Time.parse('2010-09-10') は 2010-09-10 00:00:00 を与えるため、日付が 2010-09-10 のすべてのレコードはカウントされないため、レコードはすべて 2010 年でなければなりません。 -09-09 午前 0 時前。つまり、2010-09-10 2am は含まれません。2am は 00:00:00 以下ではないからです。を使用してハッキングすることができます
Analytic.where({:ga_date.lte => Time.parse('2010-09-10 23:59:59')}).count()
しかし、それはちょっと醜いです。この投稿のコードの最初の行のように、日付のみで比較する方法がある場合は?