Запрос с двумя датами в пн goose и возврат документов, которые совпадают? - PullRequest
0 голосов
/ 05 апреля 2020

У меня есть коллекция 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.

Я просмотрел другие связанные вопросы, чтобы найти ответ, но не нашел что-нибудь много.

...