У меня есть коллекция mon goose, схема которой выглядит следующим образом:
"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.
Я просмотрел другие связанные вопросы, чтобы найти ответ, но не нашел что-нибудь много.