我有一个猫鼬集合,其架构如下:
"date_from": {type: Date, required: true},
"date_to": {type: Date, required: true},
"num_guests": {type: Number, required: true},
"children": {type: Number, required: true},
现在,我必须根据提供的日期来搜索介于“ date_from”到“ date_to”之间的文档。
现在,我发现了这段代码,可以满足我的大部分需求。
model.find({_id: req.body._id,
$and:[{date_from: {$gte: "2020-04-26T06:50:45.079+00:00",$lte: "2020-05-01T06:50:45.079+00:00"}},
{date_to: {$lte: "2020-05-01T06:50:45.079+00:00"}}]
})
但是,在以下情况下,我遇到了此代码的问题:在我的收藏夹中,有一个文档,其文档由"date_from": "2020-04-04"
到"date_to":"2020-04-08"
。现在,当我用$gte: "2020-04-03"
和$lte: "2020-04-09"
查询时,我得到了文档,但是当我将其更改为$gte: "2020-04-05"
和$lte: "2020-04-09"
时,我收到了一个空数组。但是我仍然需要获取该文档,因为从技术上讲,它仍在$gte: "2020-04-05"
和$lte: "2020-04-09"
之内。我该怎么办?
可以通过以下方式最好地解释这种情况:
我现在有一家酒店房间,预订时间为12-04-2020至24-04-2020,如果有人查询了16-04-2020至20-04-2020之间的所有预订,那么他们应该会看到已完成的预订在12到24之间。
我浏览了其他相关问题以找到答案,但没有发现太多东西。