猫鼬查询日期范围

时间:2020-09-15 13:34:53

标签: javascript mongodb mongoose

我将日期存储在我的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,它将找到文档吗?不知道为什么吗?

1 个答案:

答案 0 :(得分:0)

尝试:

var d = new Date(2020, 8, 1);
var endd = new Date(2020, 8, 30);

Date()月中,参数开始从0而不是1开始计数。