Mongodb 日期与 $gte 和 $lte 的比较

时间:2021-07-06 15:28:15

标签: mongodb mongodb-query

我需要一个查询来帮助我使用日期过滤器查找结果 下面是我的模型

loads: [
    startdate: {

        type: Date

    },
    enddate: {

        type: Date

    }
]

以下是我模型中的数据

{
    _id: "fefee24242ref3t231ffg2",
    loads: {
        startdate: "2021-07-05T00:00:00.000+00:00",
        enddate: "2021-07-22T00:00:00.000+00:00"
    }

},
{
    _id: "fefee24242ref3t231ffg2",
    loads: {
        startdate: "2021-07-06T00:00:00.000+00:00",
        enddate: "2021-07-22T00:00:00.000+00:00"
    }

}

我尝试了以下命令,但只返回了一个文档。我不明白为什么会这样

db.collection.find({}{loads: {

    $elemMatch: {
        $and: [
           {
                startdate: {$lte: new Date()
           },
           {
                enddate: {$gte: new Date()
           },
        ]
     }

}})

我想要开始日期小于当前日期且结束日期大于当前日期的所有集合

但我只得到一个集合

1 个答案:

答案 0 :(得分:0)

Date.now() 返回一个数字。

您应该使用 new Date()。这将返回一个 ISODate