Indexeddb从对象存储中获取所有键
indexeddb get all keys from object store
我是indexeddb新手。假设我把几个对象索引为db:
transaction.objectStore("some_store").put(some_object, some_key);
现在我想从对象存储中获取所有键。这可能吗?如果是,怎么做?
正如Kristof所说,使用openCursor方法是可能的。它效率不高,因为请求值游标对象可能会涉及反序列化。
您还应该注意,您的put方法返回插入对象的主键。
目前,如果您想要非常有效的键检索,请为内联键对象存储索引keyPath。对于离线对象存储,您就不那么幸运了。使用索引,您可以按照如下方式检索键:
transaction.objectStore("some_store").index('id').openKeyCursor(); // here id is primary key path
有一个直接请求对象存储的openKeyCursor方法的bug报告。希望下一个IndexedDB规范将有它。
有一个IDBObjectStore.getAllKeys()方法,它将返回对象存储中的所有键。
有关此方法的更多信息,请参阅:https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore/getAllKeys
您可以将此方法与IDBObjectStore.getAll()方法一起使用,以组合结果。
缺点是在执行这些方法之间不应该向存储中添加数据。
您需要使用openCursor方法逐个检索所有记录。只获取密钥是不可能的。
相关文章:
- Backbone虹吸以获取对象数组
- javascript在数组中获取对象数组中键的所有不同值
- 使用fabric.js从矩形区域获取对象,并将该区域绘制到画布上
- Undercore.js获取对象数组中键对象的值
- 从数组中获取对象
- 在Sahi中获取[对象]作为按钮值
- 如何从jquery自动完成中获取对象值
- 从数组NodeJs中获取对象值
- 如何在javascript中在运行时获取对象/数组
- 从Javascript中谓词的数组中获取对象
- 如何获取对象名称
- 打字.如何获取对象'的属性名称与其值不同
- 扩展引导程序的typeahead以便获取对象而不是字符串
- 正在获取对象内部数组中的对象总数
- JavaScript:获取对象的评估属性
- minko从dom获取对象
- 如何获取对象
- 从类内部获取对象名称(JavaScript)
- 如何获取对象名称
- 获取对象的所有可能组合,其中值的总和与数字匹配