2014-12-07 84 views
0

我试图找到,因为在我的流星的应用程序如下图所示日期范围内的日期字段中的所有文件,但由于某种原因,它总是返回空记录,可有人请告诉我,我可能会做错在这里?由于查找日期

示例文件:

_id: "tMSfNq9JR85XDaQe5"customerid: "QDGvBQhS6vYgZtnRr"date: Sun Dec 07 2014 19:50:21 GMT+0800 (HKT)description: "Test" 

尝试使用Chrome的控制台查询如下:

Custlog.find({date: {$gt: new Date(2014, 12, 1) , $lt: new Date(2014, 12, 10) }}).fetch() 

Custlog.find({date: {$gt: new Date(01/12/2014) , $lt: new Date(10/12/2014) }}).fetch() 
+0

可以通过你寻找到mongod的日志文件缩小调试的范围和验证哪些查询实际传输到mongod的?然后从mongo shell直接对mongod得到这个查询。这些都是很好的第一步 – alernerdev 2014-12-07 14:11:52

+0

@alernerdev我使用流星,所以我没有直接访问monogd。我试过搜索是否有可能在使用流星时访问mongod,但找不到任何信息 – MChan 2014-12-07 14:46:43

+0

我的猜测是您的文档可能未发布。你用'Custlog.find()获取任何东西吗?fetch()'?要访问mongo shell,在项目运行时,从项目所在目录的命令行运行'meteor mongo'。 – 2014-12-07 15:18:46

回答

3

在其无穷的智慧,JavaScript的Date对象的实现者做索引的月字段为零。所以,1月1日是new Date(2014, 0, 1),12月1日是new Date(2014, 11, 1)。你有什么Date(2014, 12, 1)实际上是1月1日,2015年

同样,new Date(01/12/2014)相当于1除以12,然后将到2014年,然后发送,作为一个数的日期对象,它是零,因此它应该给你Unix的太平洋业务中心,这在您的时区(GMT + 08)是1月1日,1970年

+0

只是要明确:Custlog.find({date:{$ gt:new Date(2014,11,1),$ lt:new Date(2014,11,10)}})。fetch()会给你日期大于12月1日和小于12月10日的文件。 – Doktorn 2014-12-08 09:43:50