有什么方法可以将对象存储为 dexie 中的复合索引?
Is there any way to store objects as Compound index in dexie?
我正在为 indexedDB 使用 dexie 包装器库。我尝试了几种方法将对象存储为 table 中的复合索引。这是我的 table .
db.version(1).stores({
groupmap:"[g1+g2+g3],[g1+g2+g3+mdno],g1,g2,g3,active,mddate,mdno"
});
这是我试过的。但它并不成功。并给出错误“DataError:无法在 'IDBKeyRange' 上执行 'only':参数不是有效键。
错误:无法在 'IDBKeyRange' 上执行 'only':参数不是有效键”
var g1Obj=new Object();
g1Obj["id"]=1
g1Obj["name"]="Breakfast"
var g2Obj=new Object();
g2Obj["id"]=1
g2Obj["name"]="Burger"
var g3Obj=new Object();
g3Obj["id"]=1
g3Obj["name"]="Chicken Burger"
var obj = new Object();
obj['g1']=g1Obj
obj['g2']=g2Obj
obj['g3']=g3Obj
obj['mddate']=formatDateSecond4(new Date());
obj['mdno']=formatDateSecond5(new Date());
obj['active']=parseInt(1);
db.transaction('rw',db.groupmap, function () {
db.groupmap.add(dataObj);
console.log ("[Group Map] Record saved to Local");
}).catch(function (e) {
console.log ("[Group Map] Faild to save Record :"+e.message);
});
IE/Edge 不支持复合索引。你试过其他浏览器吗?您也可以尝试应用 IndexedDBShim,它应该使复合索引在 IE/EDge 上工作。我自己还没有测试过,但它声称支持它。
我正在为 indexedDB 使用 dexie 包装器库。我尝试了几种方法将对象存储为 table 中的复合索引。这是我的 table .
db.version(1).stores({
groupmap:"[g1+g2+g3],[g1+g2+g3+mdno],g1,g2,g3,active,mddate,mdno"
});
这是我试过的。但它并不成功。并给出错误“DataError:无法在 'IDBKeyRange' 上执行 'only':参数不是有效键。 错误:无法在 'IDBKeyRange' 上执行 'only':参数不是有效键”
var g1Obj=new Object();
g1Obj["id"]=1
g1Obj["name"]="Breakfast"
var g2Obj=new Object();
g2Obj["id"]=1
g2Obj["name"]="Burger"
var g3Obj=new Object();
g3Obj["id"]=1
g3Obj["name"]="Chicken Burger"
var obj = new Object();
obj['g1']=g1Obj
obj['g2']=g2Obj
obj['g3']=g3Obj
obj['mddate']=formatDateSecond4(new Date());
obj['mdno']=formatDateSecond5(new Date());
obj['active']=parseInt(1);
db.transaction('rw',db.groupmap, function () {
db.groupmap.add(dataObj);
console.log ("[Group Map] Record saved to Local");
}).catch(function (e) {
console.log ("[Group Map] Faild to save Record :"+e.message);
});
IE/Edge 不支持复合索引。你试过其他浏览器吗?您也可以尝试应用 IndexedDBShim,它应该使复合索引在 IE/EDge 上工作。我自己还没有测试过,但它声称支持它。