【发布时间】:2017-01-21 01:41:01
【问题描述】:
我在网络服务器上使用 Node.js 和 Express 来查询 dbserver 上的 MongoDB,并且遇到了让日期一起工作的问题,我在这里阅读了很多关于这个问题的线程,最值得注意的是这个:
Inserting and Querying Date with MongoDB and Nodejs
我很确定我明白我应该做什么,但我尝试的任何方法似乎都不起作用。
在我的 .js 文件中,我有以下内容:
var todayStart = new Date();
todayStart.setSeconds(0);
todayStart.setHours(0);
todayStart.setMinutes(0);
todayStart.setMilliseconds(0);
var todayEnd = new Date(todayStart);
todayEnd.setHours(23);
todayEnd.setMinutes(59);
todayEnd.setSeconds(59);
todayEnd.setMilliseconds(999);
var query = {
"date": {
$gte: new Date(todayStart).toISOString(),
$lte: new Date(todayEnd).toISOString()
}
};
我的查询变量以我期望的格式输出到控制台:
{ date:
{ '$gte': '2016-09-13T00:00:00.000Z',
'$lte': '2016-09-13T23:59:59.999Z' }
}
我尝试使用我的查询变量或日期变量本身,并且都返回 null 结果(无错误):
db.collection('test').findOne(query, function(err, result) {
db.collection('test').findOne({"date" : {$gte: new Date(todayStart).toISOString(),$lte: new Date(todayEnd).toISOString() }}, function(err, result) {
但是,如果我像这样插入我的日期,它会返回我的结果:
db.collection('test').findOne({"date" : {$gte: new Date("2016-09-13T00:00:00.000Z"),$lte: new Date("2016-09-13T23:59:59.999Z") }}, function(err, result) {
知道我在这里缺少什么吗?
【问题讨论】:
标签: javascript node.js mongodb express