javascript Node/Mongo DB不过滤数据

7fyelxc5  于 2023-04-04  发布在  Java
关注(0)|答案(1)|浏览(98)

我试图根据两个日期过滤数据。问题是当月份不同时,它不会返回任何数据。
假设我试图过滤一周的数据,即从当天到7天前,日期应该是From27.03.2023 andto01.04.2023。现在它不返回任何数据,因为日期范围福尔斯在不同的月份之间,但是当我传递From27.03.2023 andto31.03时。2023年,它将返回记录。
另一个问题是它也不包括最后一天。就像它将返回直到30.03.2023的数据,而不是直到31.03.2023,即使结束日期是31.03.2023
我使用moment js获取日期,并使用以下代码获取日期。

const dateTo = moment().format(constants.DATE_FORMAT);
    const dateFrom = moment().subtract(7, 'd').format(constants.DATE_FORMAT);

    const list = (await db.collection(constants.COLLECTION_RECORDS)
        .find({ "userId": req.body.userId, "date": {$gte:dateFrom, $lt:dateTo} })
        .toArray()).reverse();

请指出此代码中的问题。谢谢。

t3psigkw

t3psigkw1#

var moment = require ('moment')
 function previous_year_artist(req, res, next) {
        var dateTimeTofilter = moment().subtract(1, 'year');
        var filter = {
            "date_added": {
                $gte: new Date(dateTimeTofilter._d)
            }
        };
        db.collection.find(
            filter
        ).toArray(function(err, result) {
            if (err) return next(err);
            res.send(result);
        });
    }

相关问题