Запрос IDBKeyRange по ключу, где ключ это строка

Ключ объекта, хранящегося в IndexedDB, является Array формата:

[int, String]

например [1, "Foo"], [9, "Bar"]

Как запросить базу данных, используя строковую часть ключа? Например, я хочу получить все записи с ключом [:any, "Some key"],

Похоже IDBKeyRange используется для целочисленных диапазонов, но я не смог найти метод для построения произвольных запросов по ключам.

1 ответ

Решение

Когда вы создаете свой индекс, убедитесь, что вы установили для multiEntry значение true, то есть:

objectStore.createIndex("tags","tags", {unique:false,multiEntry:true});

Затем вы можете получить диапазон, используя единственный оператор - предположим, что вы ищете 'tag':

var rangeTest = IDBKeyRange.only(tag);

И это должно сделать это для вас. У меня есть полная запись в блоге об этом здесь: http://www.raymondcamden.com/index.cfm/2012/8/10/Searching-for-array-elements-in-IndexedDB

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