H5本地存储-indexedDB数据库(三)创建对象索引
来源:互联网 发布:生化奇兵3:无限知乎 编辑:程序博客网 时间:2024/05/22 17:40
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>创建对象索引</title> <script> window.indexedDB=window.indexedDB || window.webkitIndexedDB|| window.mozIndexedDB||window.msIndexedDB; window.IDBTransaction=window.IDBTransaction||window.webkitIDBTransaction||window.msIDBTransaction; window.IDBKeyRange=window.IDBKeyRange||window.webkitIDBKeyRange||window.msIDBKeyRange; window.IDBCursor=window.IDBCursor||window.webkitIDBCursor||window.msIDBCursor; function createObjectStore() { var dbName='indexedDBTest'; var dbVersion=20170914; var idb; var dbConnect=indexedDB.open(dbName,dbVersion); dbConnect.onsuccess=function (e) { idb=e.target.result; alert("OK"); }; dbConnect.onerror=function () { alert("error"); }; //当前版本高于上一版本才能执行这句话 dbConnect.onupgradeneeded=function (e) { idb=e.target.result; var tx=e.target.transaction; var name='newUsers'; //keypath是主键,在一个对象仓库中只能有一个主键,但是主键是可以重复的, //keypath指定每一条记录使用那一属性值作为主键 var OptionalParameters={ keyPath:'userId', autoIncrement:false //是否为自增主键值,如果这里设置为false,那么需要显式添加主键值。 } //创建对象仓库 var store=idb.createObjectStore(name,OptionalParameters); //返回一个IDBObject对象,创建成功的对象仓库 alert("createObjectStore OK!") var name='userNameIndex'; var keyPath='userName'; var OptionalParameters={ unique:false, //同一个对象仓库中两个数据的索引不能相同 multiEntry:false// false只能讲数组整体添加到索引 true索引值为一个数组,可将每一个元素添加到索引 } var idx=store.createIndex(name,keyPath,OptionalParameters);//索引名字,对数据仓库中对象那个属性创建索引, alert("index OK"); }; } </script></head><body><button onclick="createObjectStore()">创建数据库对象</button></body></html>
在这里解释一下索引的multiEntry属性值
当我们有一个对象
{id:300,name:'lilei',sex:'m',like:['football','basketball','jump']}
在like属性中,疾苦的是一个数组,如果在关系型数据库中,需要另外建一张表,在indexedDB中,不许要另外建立数据仓库,直接设置属性存储即可
如果将multiEntry属性设置为true,我们对football,basketball,jump进行索引,都可以找到这条记录。而设置为false,则需要对:['football','basketball','jump']进行索引才可以搜索到。
下一篇开始进行增删改查的操作。
阅读全文
0 0
- H5本地存储-indexedDB数据库(三)创建对象索引
- H5本地存储-indexedDB数据库(二)创建对象仓库
- H5本地存储-indexedDB数据库(一)
- H5笔记-本地存储indexedDB
- HTML5本地存储——IndexedDB(二:索引)
- HTML5本地存储——IndexedDB(二:索引)
- HTML5本地存储——IndexedDB(二:索引)
- HTML5本地存储——IndexedDB(二:索引)
- HTML5本地存储——IndexedDB(二:索引)
- html 5 本地数据库(三)-- IndexedDB的API使用
- HTML5 indexedDB前端本地存储数据库实例教程
- HTML5 indexedDB数据库二之创建索引
- H5基础(6)-HTML5本地存储和本地数据库
- IndexedDB浏览器中的数据库详细介绍。(H5)
- html5本地存储之indexedDb
- HTML5本地存储——IndexedDB(一:基本使用)
- HTML5本地存储——IndexedDB(一:基本使用)
- HTML5本地存储——IndexedDB(一:基本使用)
- 2017.09.12
- Rxjava源码浅析(一)观察者模式
- vi 与 vim 快捷按键说明大全
- es性能调优
- node学习笔记<进阶系列>
- H5本地存储-indexedDB数据库(三)创建对象索引
- 使用nginx与nginx-rtmp-module搭建流媒体服务器
- 经典python题目练习
- spring cloud eureka server HA
- 利用openssl的AES加密解密数据明文(ECB模式)
- Discuz用于搭建论坛心得
- Android代码规范(转)
- iOS11泄露:Apple Watch 3支持LTE
- 【转】jQuery选择器总结