Niedawno odkryłem (niestety), że WebSQL nie jest już obsługiwany dla HTML5 i że IndexedDB zastąpi go zamiast tego.Jak wykonać kwerendę przy użyciu wielu warunków w IndexedDB?
Zastanawiam się, czy istnieje sposób na zapytanie lub wyszukiwanie wpisów IndexedDB w podobny sposób, w jaki sposób mogę użyć SQL do wyszukania wpisu spełniającego wiele warunków.
Widziałem, że mogę przeszukiwać IndexedDB przy użyciu jednego warunku z KeyRange. Jednak nie mogę znaleźć sposobu na przeszukiwanie dwóch lub więcej kolumn danych bez przechwytywania wszystkich danych z bazy danych i wykonywania z pętlami.
Wiem, że to nowa funkcja, która jest ledwo zaimplementowana w przeglądarkach, ale mam projekt, który rozpoczynam i badam różne sposoby, w jakie mogłem to zrobić.
Dziękujemy!
P.S. Próbowałem tego przy użyciu LocalStorage i przechowywania macierzy kodowanej JSON i używania pętli do sortowania moich warunków. Jednak mój stół ma 4000+ wpisów, a przejście przez wszystkie z nich zajmuje więcej niż (prawdopodobnie) 100 milisekund, co jest o wiele za długie. Jeśli użyłem IndexedDB, nie widzę, jak mogę to przyspieszyć, chyba że mogę wykonywać kwerendy z wieloma kolumnami. – jthereliable
W skrócie: musisz [utworzyć indeks] (http://www.w3.org/TR/IndexedDB/#widl-IDBObjectStore-createIndex) na właściwościach, które chcesz wyszukać, a następnie pobrać [indeks] (http : //www.w3.org/TR/IndexedDB/#widl-IDBObjectStore-index) w transakcji, a następnie wywołaj [openCursor] (http://www.w3.org/TR/IndexedDB/#widl-IDBIndex- openCursor) w tym zakresie. Mogę wymyślić przykład, ale może mi to zająć dzień lub dwa ... – robertc
Dzięki za odpowiedź. Próbowałem to zrobić, ale nie mogłem dowiedzieć się, jak wykonać zapytanie do indeksu multirow, aby zrobić coś takiego jak porównanie wielu kolumn w instrukcji WHERE SQL. Czy masz jakieś rady na ten temat? – jthereliable