【问题标题】:Is there any way to store objects as Compound index in dexie?有没有办法将对象存储为dexie中的复合索引?
【发布时间】:2017-11-10 23:03:11
【问题描述】:

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

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

这是我尝试过的。但它并不成功。并给出错误“DataError:无法在'IDBKeyRange'上执行'only':参数不是有效的键。 错误:无法在“IDBKeyRange”上执行“仅”:参数不是有效的键”

 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);

               });

【问题讨论】:

    标签: dexie


    【解决方案1】:

    IE/Edge 不支持复合索引。你在其他浏览器上试过吗?您还可以尝试应用 IndexedDBShim 应该使复合索引在 IE/EDge 上工作。我自己没有测试过,但它声称支持它。

    【讨论】:

    • 我也在上面的代码中尝试过 chrome。它不工作。
    猜你喜欢
    • 1970-01-01
    • 2021-01-12
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    • 1970-01-01
    • 2019-07-20
    • 1970-01-01
    • 2020-12-02
    相关资源
    最近更新 更多