Как правильно организовать статусы свободно/занято/резерв в периоды времени на монгоДБ?
Есть модели в бд, к ним надо сделать статусы: свободно, занято и резерв.
Интерфейс поиска (выборки):
- указывают даты от и до
- указывают чекбокс "в том числе и резерв"
Монго не умеет делать join'ы, как правильно тут поступить?
Хранить в массиве даты? Но как делать выборку?
Если дата есть в массиве и нет метки "reserv" - занято,
Если есть метка "reserv", то резерв
Если периода вообще нет, то свободно.
МонгоДБ должен взять первое значение из массив, проверить попадает период или нет AND есть метка или нет. Если не попал ни в один период, значит запись надо вернуть.
Есть какой нибудь оператор в монгоДБ, который гуляет по массиву подобным способом? Или может есть другой способ хранить все это и делать выборку?
Есть какой нибудь оператор в монгоДБ, который гуляет по массиву подобным способом?
Да, только еще проще: пишете запрос к самому массиву. Монга пройдет по всем элементам и проверит, не удовлетворяет ли хоть один из них указанным условиям.
Да, спасибо, это как вариант тоже есть. Но не знаем точно сколько будет подобных дат. Пока планируем сделать ограничения на даты, но завтра могут попросить убрать и запрос будет ой какой большой