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() и составные индексы.

Другие вопросы по тегам