如下图,我存储的一条数据,主键是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();
};
};
createIndex可以添加多个索引,并设置是否索引值是否唯一
indexedDB 类似于 nosql , 只能靠关键字索引了, 没有办法按 sql 来查询。获取到集合以后,可以用 js 的方法,来查找。