'$eq' 不适用于 mongodb

时间:2021-02-24 11:06:15

标签: javascript database mongodb mongodb-query aggregation-framework

'$eq' 不适用于日期。谁可以帮我这个事。
所以我想要做的是我想根据多个日期搜索文档。我要搜索的文档上有一个 startdate 字段。如果我给出一个简单的查询,它将检索文档。但是当我在 '$eq' 中给出日期数组时,它不起作用。有人可以指出错误或重新格式化此查询以使其工作。

db.getCollection('campaigngrid').find({
    startdate: { '$eq': [ ISODate('2021-02-05'), ISODate('2021-02-12') ] },
//    startdate: ISODate('2021-02-05'),
    active: true
})

所以我仔细检查了查询。文件也在那里。当我只使用简单的查询进行搜索时,它会检索文档(我刚刚评论过)。 提前致谢。

1 个答案:

答案 0 :(得分:1)

我认为您正在尝试查找日期是 ISODate('2021-02-05') 或 ISODate('2021-02-12') 的位置

但你的问题是

 $eq: [ISODate('2021-02-05'), ISODate('2021-02-12')]

会找到 startdate = [ISODate('2021-02-05'), ISODate('2021-02-12')];

要查找 startdate 至少等于您的日期之一的位置,请执行以下操作:

db.getCollection('campaigngrid').find({
    startdate: { '$in': [ ISODate('2021-02-05'), ISODate('2021-02-12') ] },
    active: true
})