我将日期存储在我的mongo DB数据库中
date: new Date()
这是模型上的字段
date: {type: Date, required: true},
它成功存储,并且在数据库2020-09-14T15:28:19.462+00:00
中看起来像这样
然后我想像这样在两个日期之间查询文档
router.put('/filter', (req, res, next) =>{
//console.log(req.body.dateOne.year)
//console.log(req.body.dateTwo.year)
var d = new Date(2020, 09, 1);
var endd = new Date(2020, 09, 30);
History.find({"date": {$gte: d, $lte: endd}}).then(documents =>{
if (documents.length >= 1){
res.status(200).json({
message: "Got History",
posts: documents
});
} else{
res.status(404).json({
message: "Nothing matches",
});
}
});
});
它始终不返回任何文档,我已经浏览过类似的堆栈溢出问题,还有其他人提到这是因为日期在存储时间,所以也尝试像这样在日期中添加时间
var d = new Date(2020, 09, 1, 01, 00, 00, 00);
但仍然没有运气。
无论如何,仅使用javascript日期对象即可做到这一点吗?还是我需要使用类似https://date-fns.org/的东西?
如果我将开始日期更改为2019,而不是2020,它将找到文档吗?不知道为什么吗?
答案 0 :(得分:0)
尝试:
var d = new Date(2020, 8, 1);
var endd = new Date(2020, 8, 30);
在Date()
月中,参数开始从0而不是1开始计数。