javascript - 求助一个关于indexedDB的问题
问题描述
如下图,我存储的一条数据,主键是timeStamp,我所知道的是能通过get主键值来找到这条数据,但是无法通过查询里面的其它值来检索数据吗?类似sql语句的查询条件无法做到吗?(全部查出来再遍历结果排除就算了)
db.createObjectStore(’book’, { keyPath: 'timeStamp'});store.get(1496251171844)

有人说用索引,但是索引也无法根据值来查询啊,还是需要我判断一遍啊,我想要的是直接store.get(group),就能获取改对象存储下的指定的group
var book = db.createObjectStore(’book’, {keyPath: 'timeStamp' }); // 建立索引book.createIndex('groupId','groupId', {unique:false});--------------------------------------------------------html5.indexedDB.getFromId = function(groud, callback){ var db = html5rocks.indexedDB.db; var tx = db.transaction([’book’],’readwrite’); var store = tx.objectStore(’book’); var index = store.index('groupId'); request = index.openCursor(); request.onsuccess = function(event){var result = event.target.result;if(!result){return;}if(result.value.groupId == groud){ callback(result.value);}result.continue(); };};
问题解答
回答1:createIndex可以添加多个索引,并设置是否索引值是否唯一
回答2:indexedDB 类似于 nosql , 只能靠关键字索引了, 没有办法按 sql 来查询。获取到集合以后,可以用 js 的方法,来查找。
相关文章:
1. nignx - docker内nginx 80端口被占用2. docker - 各位电脑上有多少个容器啊?容器一多,自己都搞混了,咋办呢?3. javascript - 在vue-cli引入vux后 使用报错4. angular.js - protractor初学 参考案例运行测试文件 报Error: Timeout5. javascript - vue-cli创建的项目,少一些步骤,对项目有影响吗?6. dockerfile - 为什么docker容器启动不了?7. docker - 如何修改运行中容器的配置8. docker-compose中volumes的问题9. ruby - curb已安装,但一直无法加载。10. html - iframe嵌套网页在iPhone端的显示问题

网公网安备