Cервис бронирования на Node.js + MongoDB. Как хранить даты для максималь удобного поиска?

Доброго времени суток!

Я пишу сервис бронирования для узкой b2b ниши в качестве дипломной работы (то есть это не просто диплом чтобы написать и забыть, а проект, который будет использован в существующем бизнесе). Вдаваться в специфику бизнеса не буду, но для простоты скажем, что это бронирование мест в сети хостелов.
Для разработки использую Node.js и MongoDB. Это мой первый более-менее крупный проект в веб-разработке в целом и с использованием mongo в частности.

Node.js привлек своей структурой, гибкостью в расширении, асинхронным I/O и (что греха таить) трендовостью. Над вопросом, подходит ли mongo для такого рода проекта, решил не задумываться и принял на веру, что подходит ("сделаю как получится а потом, если что, переделаю как надо").

Так вот. Самой неочевидной архитектурной штукой в бек-энде оказался календарь бронирования и поиск по датам. Никак не могу решить, каким образом в mongodb организовать хранение данных о местах и забронированных датах так, чтобы поиск свободных мест в определенном диапазоне дат производится с наименьшими затратами ресурсов.

Буду рад услышать как ответы на вопрос, так и общие мысли, которые могли бы облегчить pain in the ass!
  • Вопрос задан
  • 3522 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Evgeniy_Van
epoch? ИМХО самый удобный формат оперирования датами
Ответ написан
Комментировать
Tark
@Tark
Pyramid'альный мир
Возможно, лучше будет хранить в формате UTC гггг-мм-дд чч.мм.сс: тогда запрос "на день" можно сделать {'date': {'$regex': '^2014-04-20'}} и сразу же всё и получить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы