$ lte运算符似乎无法在日期字段上正常工作

时间:2015-06-11 07:55:56

标签: mongodb

$lte运算符似乎无法在日期字段上正常运行。我的数据库中有一个文档,其中Date字段设置为"Datum": {"$date":"2015-06-30T00:00:00.000Z"}。在服务器端,查询给定月份的文档的代码是

        self.routes['/getEvents'] = function(req, res) {
        var CalendarId = req.query.CalId;
        var start      = req.query.start;
        var end        = req.query.end;
        console.log('getEvents?CalId=' + CalendarId + '&start=' + start + '&end=' + end);

        var filter = {};
        filter.Datum = {"$gte": new Date(start), "$lte": new Date(end)};
        filter.CalId = CalendarId;

        events.find(filter, function(err,docs) {
            if (err) return next(err);
            res.setHeader('Content-Type','application/json');
            res.statusCode = 200;
            res.send(docs);
        });
    }

如果使用start = '2015-06-01'end= '2015-06-30'调用该函数,则此文档不包含在结果集中。只有日期< 2016-06-30包括在内。我将此应用程序作为本地应用程序和mongolab.com上的在线应用程序。在在线版本中,文档包含在结果集中,但在本地应用程序中,文档不包含在结果集中。本地应用程序使用mongodb 3.0.3。在mongolab上我认为仍然有2.6.x版本在使用。

0 个答案:

没有答案