indexedDB 通過索引查詢資料
通過索引查詢資料是一個較大的話題,比如利用索引遍歷資料或者索引結合遊標查詢資料等。
本文介紹一下利用索引物件的get()方法獲取指定主鍵的資料,非常的簡單。
目的是讓讀者進一步加強對於索引的理解。
首先看一段程式碼例項:
[HTML] 純文字檢視 複製程式碼執行程式碼<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <script> let students=[ { id:1001, name:"張三", age:21, sex:"男" },{ id:1002, name:"李四", age:20, sex:"女" },{ id:1003, name:"王五", age:19, sex:"女" } ]; let request = window.indexedDB.open("antzone", 1); request.onupgradeneeded = (ev) => { let db = ev.target.result; if (!db.objectStoreNames.contains('students')) { let objectStore = db.createObjectStore('students',{keyPath:"id"}); objectStore.createIndex("xingbie","sex",{ unique: false }); objectStore.createIndex("xingming","name",{ unique: true }); } } request.onsuccess = (ev) => { let db = ev.target.result; let odiv=document.getElementById("ant"); let transaction = db.transaction(['students'], 'readwrite'); let objectStore = transaction.objectStore('students'); for(let i=0;i<students.length;i++){ objectStore.add(students[i]); } let IDBIndexSex = objectStore.index("xingbie"); let getRequest = IDBIndexSex.get("女"); getRequest.onsuccess=function(ev){ odiv.innerHTML=this.result.name; } getRequest.onerror=function(ev){ odiv.innerHTML="讀取失敗"; } } </script> </head> <body> <div id="ant"></div> </body> </html>
程式碼執行效果截圖如下:
程式碼分析如下:
(1).在indexedDB 查詢資料一章節介紹了IDBObjectStore.get() 方法查詢資料。
(2).通過IDBObjectStore.get() 方法獲取資料是基於主鍵來查詢的。
(3).而通過 IDBIndexSex.get()方法獲取資料是基於索引來查詢的。
(4).假設基於索引"xingbie"查詢資料,那麼資料此時基於索引值進行排序,圖示如下:
(4).指定索引值的資料可能不止一個,比如性別為"女"的學生有兩個。
(5).IDBIndexSex.get()方法只能獲取最前面的那個資料,頁面顯示結果是"李四"。
如果想要獲取所有具有指定索引值得資料可以參閱indexedDB 遍歷資料一章節。
相關文章
- indexedDB 查詢資料Index
- indexedDB 資料庫 索引Index資料庫索引
- 通過Web API查詢資料WebAPI
- C#通過ODBC查詢HANA資料庫資料C#資料庫
- (利用索引)大資料查詢索引大資料
- python通過淘寶IP資料庫查詢地區Python資料庫
- 通過shell指令碼生成查詢表資料的sql指令碼SQL
- indexedDB 修改索引Index索引
- 理解索引(中):MySQL查詢過程和高階查詢索引MySql
- 通過awr 查詢資料庫最近有沒有重啟!資料庫
- 索引監控-查詢從未被使用過的索引索引
- TableStore多元索引,大資料查詢的利器索引大資料
- Mysql資料庫是如何通過索引定位資料MySql資料庫索引
- 【索引】Oracle查詢指定索引提高查詢效率索引Oracle
- AppBoxFuture: 二級索引及索引掃描查詢資料APP索引
- ElasticSearch分片互動過程(建立索引、刪除索引、查詢索引)Elasticsearch索引
- 架構師之json-----------通過path查詢指定資料架構JSON
- 通過點陣圖篩選優化資料倉儲查詢效能優化
- 通過SQL查詢UDUMP檔案SQL
- 通過clss屬性查詢元素
- 通過字串構建查詢圖片資源ID字串
- indexedDB 更新資料Index
- indexedDB 新增資料Index
- localforage indexedDB如何使用索引Index索引
- 通過 v$database_block_corruption 查詢資料檔案中的壞塊DatabaseBloC
- 通過bundle Id查詢應用資訊
- 如何通過程式來查詢表名
- 巧用函式索引解決資料傾斜列查詢函式索引
- IndexedDB 資料庫新增資料Index資料庫
- 比較有索引和無索引的查詢速度(在mysql資料庫中)索引MySql資料庫
- 資料庫資料的查詢----連線查詢資料庫
- 資料庫查詢和資料庫(MySQL)索引的最佳化建議資料庫MySql索引
- 為什麼有時Oracle資料庫不用索引來查詢資料?(轉)Oracle資料庫索引
- indexedDB 遍歷資料Index
- indexedDB 資料庫版本Index資料庫
- indexedDB 刪除資料Index
- indexedDB 批量新增資料Index
- IndexedDB 資料庫概述Index資料庫