Почему я не могу получить правильный результат через функцию 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:

http://jsbin.com/sinuxa/edit?js,console

1 ответ

Решение

Это сработает, если вы измените порядок своего индекса так, чтобы изменяемая часть (имя) была в конце. Если вы хотите знать, почему, см. В IndexedDB, есть ли способ сделать отсортированный составной запрос? для объяснения того, как составные индексы работают в IndexedDB.

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