Почему я не могу получить правильный результат через функцию IDBKeyRange.bound в IndexedDB?
У меня есть макет indexedDB содержит такие элементы, как:
{
id:1002,
name:"Frank",
company: "dg",
age:30
}
И я создал индекс ['name', 'age', 'company'], просто хочу получить результат, который мне нужен, как websql.
ФункцияgetMultipleDataByRange, определенная для получения элементов, я установила ['0',24,'ef']
как lowerBound
а также ['z',24,'ef']
как upperBound
Я подумал, что это должно показать мне результат совпадения с тем, кому 24 года, плюс чья компания "ef". Но результат показывает, что все пункты соответствуют диапазону, который я установил. Как я могу установить диапазон, чтобы получить правильный результат.
Код также можно проверить по сгенерированной мной ссылке JSBIN:
1 ответ
Это сработает, если вы измените порядок своего индекса так, чтобы изменяемая часть (имя) была в конце. Если вы хотите знать, почему, см. В IndexedDB, есть ли способ сделать отсортированный составной запрос? для объяснения того, как составные индексы работают в IndexedDB.