Dexie.js - фильтрация по нескольким ключам с использованием промежуточного и составного индекса
Я пытаюсь использовать составной индекс из 3 атрибутов, чтобы отфильтровать диапазон записей с помощью between()
функция.
Например:
db.version(1).stores ({
apps: "id,age,shoeSize,height,[age+shoeSize+height]"
});
db.table
.where('[age+shoeSize+height]')
.between([15, 8, 60], [20, 10, 70]);
Я ожидаю, что приведенное выше будет выводить записи с возрастом от 15 до 20, И размер обуви от 8 до 10 И высотой от 60 до 70.
Однако Декси, похоже, здесь фильтрует только по возрасту (и сортирует его по возрастанию), не отфильтровывая какие-либо размеры обуви или рост, которые не попадают в диапазон, который я запрашиваю. Когда я запускаю код, ошибок консоли нет. Я не понимаю, какbetween
а составные индексы работают? Есть ли в Dexie какой-либо способ достичь такой функциональности?
1 ответ
Насколько я могу судить, одним из способов решения проблемы является фильтрация по WhereClause
по одному атрибуту (например, возрасту), затем отфильтруйте полученный объект коллекции по оставшимся фильтрам. Мне интересно, есть ли другой способ сделать это, используяbetween()
и составные индексы.