【发布时间】:2021-01-02 06:45:12
【问题描述】:
我将日期存储在我的 mongo DB 数据库中
date: new Date()
这是模型上的字段
date: {type: Date, required: true},
它存储成功,在 DB 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 年,它会找到文档吗?不知道为什么?
【问题讨论】:
标签: javascript mongodb mongoose