有没有办法将对象存储为dexie中的复合索引?

时间:2017-06-09 04:05:12

标签: dexie

我正在为indexedDB使用dexie包装器库。我尝试了几种方法将对象作为复合索引存储在表中。这是我的桌子。

 db.version(1).stores({
        groupmap:"[g1+g2+g3],[g1+g2+g3+mdno],g1,g2,g3,active,mddate,mdno"
    });

这是我尝试过的。但它没有成功。并给出错误“DataError:''''''''''''''''''''''''''''''''''''''''''''''''''''''''' 错误:无法在'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);

               });

1 个答案:

答案 0 :(得分:0)

IE / Edge不支持复合索引。你试过其他浏览器吗?您也可以尝试应用IndexedDBShim,它应该使复合索引能够在IE / EDge上运行。 Haven没有对自己进行测试,但声称支持它。