'$eq' 不适用于日期。谁可以帮我这个事。
所以我想要做的是我想根据多个日期搜索文档。我要搜索的文档上有一个 startdate 字段。如果我给出一个简单的查询,它将检索文档。但是当我在 '$eq' 中给出日期数组时,它不起作用。有人可以指出错误或重新格式化此查询以使其工作。
db.getCollection('campaigngrid').find({
startdate: { '$eq': [ ISODate('2021-02-05'), ISODate('2021-02-12') ] },
// startdate: ISODate('2021-02-05'),
active: true
})
所以我仔细检查了查询。文件也在那里。当我只使用简单的查询进行搜索时,它会检索文档(我刚刚评论过)。 提前致谢。
答案 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
})