由于某些原因:
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 2am 将不包括在内,因为 2am 不是“小于或等于”00:00:00。它可以通过使用被黑客入侵
Analytic.where({:ga_date.lte => Time.parse('2010-09-10 23:59:59')}).count()
但这有点难看。如果有一种方法可以像这篇文章的第一行代码那样按日期进行比较?