出于某种原因:MongoDB如何比较日期而忽略时间,比如date <='2010-09-10'?
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年9月10日凌晨2点将不会包含,因为凌晨2点不是“小于或等于”00:00:00。它可以被黑客使用
Analytic.where({:ga_date.lte => Time.parse('2010-09-10 23:59:59')}).count()
但它是一种丑陋。如果有一种方法可以按日期进行比较,就像本文中的第一行代码一样?