You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Dexie.js向IndexedDB保存含点记录键时遇到问题

解决Dexie.js保存带点键自动转为树形结构的问题

Dexie.js默认会把带点的键解析成嵌套对象,这是为了支持点符号查询的特性,但你可以通过添加操作选项来关闭这个行为:

  • 在使用add()、put()或批量操作bulkAdd()、bulkPut()时,传递{allowDotKeys: true}参数,就能强制保持原键名形式存储:
    // 单个记录保存
    await db.yourTable.add({"showing.text.okey": "okey"}, {allowDotKeys: true});
    
    // 批量保存
    await db.yourTable.bulkAdd([
      {"showing.text.okey": "okey"},
      {"another.key.with.dots": "value"}
    ], {allowDotKeys: true});
    

关于你提到的“相同代码有时正常有时异常”,大概率是部分操作遗漏了这个选项——只有显式传入allowDotKeys: true的操作才会保留带点的键,没传的操作会沿用默认的解析逻辑。

保存完成后可以通过查询验证:

const record = await db.yourTable.get(yourRecordId);
console.log(record); // 应该输出 {"showing.text.okey": "okey"} 而非嵌套结构

内容的提问来源于stack exchange,提问作者frostykitten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 09:10:28