qmax
@qmax
программер

Как прокрутить выборку данных по дате?

Задача, видимо, элементарная, но меня сильно переклинивает и я в упор не вижу простого естественного и красивого решения.

В кратце: есть данные с сортировкой в обратнохронологическом порядке, надо получить фрагмент выборки начиная с определённой даты, но не отфильтровывая остальные данные.

Наверно решается средствами только одной базы данных, но на всякий случай выложу весь расклад.

В базе (mongodb) хранятся записи с метками даты. Есть индекс по дате. Естественный порядок (natural order) примерно соответствует хронологическому.

Выборка осуществляется запросом с фильтром по значениям некотрых полей и с сортировкой всегда в обратнохронологическом порядке (другая сортировка не имеет особого смысла).

В интерфейсе данные отображаются в форме динамически подгружаемой по скроллингу таблицы (dojo dgrid + dojo/store/JsonRest). При скроллинге виджет запрашивает диапазон постранично/пофрагментно, типа 1-25, 25-50, итп.

Коммуникация интерфейса с бэкендом по JSON REST API, для постраничности используются HTTP заголовки Range и Content-Range с юнитом "items" (Range: items 25-50, Content-Range: items=25-50/1000)
По идее, если в ответе выдать какой-то внезапный диапазон, таблица должна это понять.

Собственно, нужно как-то так сделать, чтобы пользователь выбирал в интерфейсе ориентировочную дату, и в таблицу загружались данные начиная с этой даты, но с возможностью отмотать вперёд/назад.

P.S.
Ну или нафик dojo, я буду мигрировать всё это на angular. Но мне кажется это не принципиально при сохранении http rest.
  • Вопрос задан
  • 2427 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы