我的猫鼬查询是
var filter = {
changeDate: { $lte: toDate, $gte: fromDate }
};
changeLog.find(filter).sort('-changeDate').exec(function (err, _doc) {
if (err) {
logger.error(err);
return res.status(400).send({ isSuccess: false, message: err, data: _doc });
}
return res.status(200).send({ isSuccess: true, message: err, data: result });
});

fromdate是2016年2月7日,todate是2/8/2016。但是我的第7个星期日的记录不仅仅是第8个星期五。每次代码都采用& lt而不是& lte
在mongo中,changeDate存储如2016-02-01 07:49:29.084Z
答案 0 :(得分:1)
您的日期范围查询主要是查找其changeDate值落在此范围内的文档
ISODate("2016-02-07 00:00:00.000Z") <= changeDate <= ISODate("2016-02-08 00:00:00.000Z")
因此,对于您的查询来过滤2月8日文档,请考虑将您的toDate更改为2月9日,以便从该范围中选择
ISODate("2016-02-07 00:00:00.000Z") <= changeDate < ISODate("2016-02-09 00:00:00.000Z")
e.g。
var toDate = new Date("2016-02-09"),
fromDate = new Date("2016-02-07")
filter = { "$gte": fromDate, "$lt": toDate };