По какой-то причине:
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
тогда все записи с датой 2010-09-10 не будут засчитаны, потому что Time.parse ('2010-09-10') выдаст 2010-09-10 00:00:00, поэтому все записи будут иметь быть 2010-09-09 до полуночи. Другими словами, 2010-09-10 2:00 не будут включены, потому что 2:00 не «меньше или равно» 00:00:00. Его можно взломать с помощью
Analytic.where({:ga_date.lte => Time.parse('2010-09-10 23:59:59')}).count()
но это некрасиво. Если есть способ сравнить по дате только как первая строка кода в этом посте?