当前位置: 首页 > 知识库问答 >
问题:

使用Javascript向IndexedDB中预先存在的ObjectStore添加索引

郎慎之
2023-03-14

我看到了多个JavaScript示例,其中使用createindex在创建ObjectStore之后直接定义ObjectStore索引,如下所示:

var objectStore = ixDb.createObjectStore(osName, { keyPath: pkName, autoIncrement: autoIncrement });

objectStore.createIndex("name", "name", { unique: false }); 

谁能给我演示一下,您如何在不调用createobjectstore的情况下,对预先存在的表使用createindex?我想这里真正的问题是如何在不使用createobjectstore的情况下获得对objectStore的引用?

我尝试了以下几种变体,但没有成功:

var objectStore = window.IDBTransaction.objectStore(ObjectStoreName);
var index = objectStore.createIndex(ixName, fieldName, { unique: unique, multiEntry: multiEntry });

共有1个答案

宦书
2023-03-14

您可以在onupgradeNeed期间执行该操作,该操作应该与您最初存储对象的位置相同。在其中,您可以执行升级它所需的任何适当操作,例如创建一个新索引。这里有一个例子。

 类似资料:
  • 我试图从索引值为0的indexeddb存储区获取所有记录,下面的代码在值为1,2,3,4等的情况下工作,但当它为0时,它不会返回。 有什么想法吗? 最诚挚的问候Lmac34

  • 我在我的应用程序上有indexedDb用于网络存储。 我想获得以下代码的商店。 它返回错误。我是众所周知的打开indexeddb数据库和版本更改。 错误为 我被试着用断点。在这种情况下,它工作很好,没有错误。 我怎么去商店?请帮帮我. 提前道谢!

  • 一种方法是用新的名称创建一个新的objectStore,然后复制原来的数据,但是有没有方法修改现有的objectStore的名称呢?

  • 问题内容: 在使用AJAX调用的Web应用程序中,我需要提交一个请求,但要在URL的末尾添加一个参数, 寻找一种JavaScript函数,该函数解析URL并查看每个参数,然后添加新参数或更新值(如果已经存在)。 问题答案: 您需要调整的基本实现如下所示: 这大约是正则表达式或基于搜索的解决方案的两倍,但是这完全取决于查询字符串的长度和任何匹配项的索引 我为完成测试而基准的慢速正则表达式方法(慢了大

  • 像indexedDB这种浏览器提供的大容量的本地数据库,具有什么应用场景呢?

  • 问题内容: 我目前正在开发一个Web应用程序,该应用程序很好地使用了twitter-bootstrap和Angularjs。但是,我在将typeahead用作ng- model时遇到问题。 键入时一切正常,但是当我选择一个项目(建议)时,除非在选择值后更改文本框的值,否则该值不会反映在Angular控制器中。类型->选择->类型有效。类型->选择不起作用。 HTML: 角度代码: 我添加了一个ng