Мне нужно сохранить в IndexedDB в Веб-приложении в браузере набор событий. Каждое событие характеризуется датой начала и датой конца.
Затем мне нужно выбирать события актуальные в заданный день (например, сегодня).
В SQL это выглядело бы как-то так:
SELECT * FROM events WHERE startDate >= $1 AND endDate <= $1
Но в IndexedDB нельзя делать запросы в такой свободной форме.
Есть две гипотетические возможности:
Создать композитный индекс и использовать его, но они очень плохо документированны и непонятно можно ли как-то сделать так, чтобы для startDate использовался IDBKeyRange.lowerBound, а для endDate использовался IDBKeyRange.upperBound в одном и том же запросе.
Создать какое-то синтетическое поле в документе, включающее в себя обе даты, и по которому можно было бы обходясь ограниченными возможностями индексов, запрашивать события для заданной даты.