В разделе Как использовать метод подсчета IndexedDB с составными ключами? Я научился фильтровать отдельные атрибуты. Пока все хорошо, но теперь мне нужно сортировать и фильтровать одновременно.
Мое хранилище объектов заполнено этими объектами:
os.put({feed_id:1,id:1,title:"foofoo",time:111});
os.put({feed_id:1,id:2,title:"foobar",time:112});
os.put({feed_id:1,id:3,title:"foobaz",time:113});
os.put({feed_id:3,id:1,title:"bazfoo",time:114});
os.put({feed_id:3,id:2,title:"bazbar",time:115});
os.put({feed_id:3,id:3,title:"bazbaz",time:116});
os.put({feed_id:1,id:4,title:"foofoo",time:122});
os.put({feed_id:1,id:5,title:"foobar",time:121});
os.put({feed_id:1,id:6,title:"foobaz",time:120});
os.put({feed_id:3,id:4,title:"bazfoo",time:119});
os.put({feed_id:3,id:5,title:"bazbar",time:118});
os.put({feed_id:3,id:6,title:"bazbaz",time:117});
У меня есть два индекса, установленных в хранилище объектов, один (idx_feedid) имеет keyPath feed_id
, что позволяет мне получить все объекты с определенным идентификатором фида с помощью openCursor, а другой (idx_ts) с keyPath ["id","feed_id","time"]
.
Проблема в том, что повторение результатов idx_feedid дает мне результаты без упорядочивания временной метки. В SQL я бы легко сделал SELECT * FROM feeditems WHERE feed_id=3 ORDER BY time DESC
, но как это сделать в IndexedDB?
И как я могу ограничить возвращаемые результаты для достижения нумерации страниц? По сути, мне нужно что-то вроде MySQL LIMIT 0,10
/LIMIT 10,10
/...