indexDB数据库的索引和游标的使用

2019-02-27  本文已影响0人  小伙子太认真

前面写过一篇:本地存储和数据库的文章,没基础的先看一下这里。不然你看着会懵。

还是回到我出文章的思路来

关于索引和游标,我会问

1、索引的API有哪些?

2、索引应该怎么使用?有哪些好处?

3、游标的API有哪些?

4、游标怎么使用?有哪些用途?

5、两位可以一起使用吗?

第一个问题:索引的API有哪些?

IDBObjectStore.createIndex() --------创建索引

该方法接收三个参数:

indexName ----索引名称

keyPath ---- 索引字段,可以为空或者数组

optionsParameters ---- 索引配置参数

关于optionsParameters的配置参数有:

1、unique表示keyPath字段的数据是否是唯一的

2、multiEntry表示是否为keyPath字段的每一项建立一条索引数据。(有点懵没关系,下面会有演示)

第二个问题:索引应该怎么使用?有哪些好处?

IDBObjectStore对象是调用createObjectStore方法之后返回得到的。有了这个对象之后就可以使用创建索引的方法。 如果看得不懂,就得看一下我的上一篇了。

使用创建索引的好处在于:

1、可以使用存储记录中的值作为索引(不用创建多余的数据,提高效率)

2、索引会自动更新

3、索引数据自动排序

第三个问题:游标的API有哪些?

第四个问题:怎么使用

IDBObjectStore/IDBIndex.openCursor() -----创建游标

该方法返回一个IDBRequest对象,这个对象的结果返回IDBCursorWithValue对象。

可选参数有两个,

第一个是range----顾名思义是取值范围的意思。

一般值的写法是:IDBKeyRange.bound(key1,key2)

IDBKeyRange.only(key)

第二个direction----数据排列方向的意思

direction的话取值有四个,两个比较常用的prev和next

演示一下

这个bound参数为null就是全部取值的意思了。prev表示倒序输出数据,看一下下面的效果图。 上面这个传进去一个参数range和direction。表示正序和取值大于等于1小于等于2的意思

第五个问题:游标和索引的结合使用

1、更新数据

这是一个异步操作,所以先打印出来002 ---female。再打印出来002---male,下面一张图可以看出数据已经更新了

2、删除对应字段的数据

点个赞呗

                                                                                                                 如有侵权,联系作者删

上一篇 下一篇

猜你喜欢

热点阅读