Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从node.js按日期查询i mongo_Javascript_Node.js_Mongodb_Datetime_Mongoose - Fatal编程技术网

Javascript 从node.js按日期查询i mongo

Javascript 从node.js按日期查询i mongo,javascript,node.js,mongodb,datetime,mongoose,Javascript,Node.js,Mongodb,Datetime,Mongoose,我想按日期查询mongo collection。例如: var startDate = new Date(dateNow.getUTCFullYear(),dateNow.getUTCMonth(),dateNow.getUTCDate(),dateNow.getUTCHours(),0); var endDate = new Date(dateNow.getUTCFullYear(),dateNow.getUTCMonth(),dateNow.getUTCDate(),dateNow.

我想按日期查询mongo collection。例如:

var startDate = new Date(dateNow.getUTCFullYear(),dateNow.getUTCMonth(),dateNow.getUTCDate(),dateNow.getUTCHours(),0);
    var endDate = new Date(dateNow.getUTCFullYear(),dateNow.getUTCMonth(),dateNow.getUTCDate(),dateNow.getUTCHours()+1,0);

query.timeRegistered = { '$gte' : startDate, '$lt' : endDate };

... make mongo query ... 
但它不起作用。我假设这是因为mongo以ISODate格式保存日期对象。这个查询在shell中工作,因为mongo将日期转换为ISODate,但在javascript(node.js)中它不工作。我尝试了所有可能的解决办法,但都没有帮到我


请,如果有人有任何解决办法,我将非常感激

> P>请考虑默认情况下,Mongo中的日期操作是UTC,例如,我在<>强> 6月22日2015日下午7点10分IST<强>中输入了“<强> T1 <强”>的记录。但是,在shell中,您可以看到它的值为“ISODate”(“2015-06-22T13:40:08.545Z”),“ISODate”晚于5:30小时。从javascript代码(在浏览器上运行,因此采用浏览器时区)尝试根据UTC时区创建开始和结束日期变量,然后查询记录。让我们知道它是否工作,保持简单,给出一个非常大的日期范围,看看它是否工作。由于我不是JS专家,我认为您可能需要调整日期,以UTC为单位

然而,在Mongo客户机上进行了如下尝试,并且效果很好,因此我从JS中假设,只要您在正确的时区内传递日期,它也应该会起作用



在node.js mongo查询对象中使用Javascript
Date
对象是正确的方法。你能显示更多的代码吗?请定义“不工作”-你有错误吗?您没有收到退回的文件吗?日期范围应该是确定的。你的问题可能是别的。见相关问题:
db.t1.find({dt:{$gt:ISODate("2015-06-22T13:40:00.000Z"),$lt:ISODate("2015-06-22T13:41:00.000Z")} })