mongoDB查找日期在日期范围数组中的位置



我的文档如下所示:

{
"_id": {
"$oid": "60841a6047fda45b6391dbce"
},
"title": "Week 1",
"dates": [{
"start": {
"$date": "2021-04-26T00:00:00.000Z"
},
"end": {
"$date": "2021-05-02T00:00:00.000Z"
}
}, {
"start": {
"$date": "2021-05-10T00:00:00.000Z"
},
"end": {
"$date": "2021-05-16T00:00:00.000Z"
}
}]
}

现在,我试图找到给定日期在其中一个范围内的文档。(预期结果是没有文档,但此查询正在返回我的文档。(

{
$and: [
{'dates.start': {$lte: ISODate('2021-05-05')}},
{'dates.end': {$gte: ISODate('2021-05-05')}}
]
}

如何查询一个对象中的开始和结束日期是否包括我的日期?

$elemMatch运算符将包含数组字段的文档与至少一个匹配所有指定查询条件的元素进行匹配

{
dates: {
$elemMatch: {
start: { $lte: ISODate("2021-05-05") },
end: { $gte: ISODate("2021-05-05") }
}
}
}

游乐场

最新更新