Javascript 如何正确更新IndexedDB中的文档?

Javascript 如何正确更新IndexedDB中的文档?,javascript,indexeddb,Javascript,Indexeddb,有一个名为'data'的对象存储,带有键路径:“id',结构化数据如下所示 {"id":860, "data":{ "a":[], // json array "b":[], // json array "c":{}, // json object "d":{}, // json object } } 此结构化数据不得重复,并且只有一个结构化数据必须写入数据对象存储。但是,它可以更新和扩展 为了更新此文档,我到目前为止所做的工作是获取整个文档并附加数

有一个名为
'data'
对象存储
,带有
键路径:“id'
,结构化数据如下所示

{"id":860,
  "data":{
    "a":[], // json array 
    "b":[], // json array 
    "c":{}, // json object
    "d":{}, // json object
  }
}
此结构化数据不得重复,并且只有一个结构化数据必须写入
数据
对象存储。但是,它可以更新和扩展

为了更新此文档,我到目前为止所做的工作是获取整个文档并附加数据,然后重新编写并替换旧文档,如下所示:

if (data != undefined) {
    data.a.push(obj); <= update 
    var item = { id:860, data: data };
    write('data', item); <= replace on the old document 
}
if(数据!=未定义){

数据推送(obj)据我所知,当你使用IDB数据时,你必须阅读并传递整个对象。如果你在你的安装中发现性能问题,可能会考虑把大对象分解成许多对象。

你相信我的通过是正确的吗?老实说,我认为应该做得不同。我不太确定。为什么你希望一个对象存储N条数据记录而不是N个对象。这样你就可以进行更新,而不必读取其中的所有内容。老实说,我还是不太明白你在说什么。你说你的项目只处理一个对象的一个实例,但在这个对象中,你有不断增长的数据。这有什么意义呢较大的对象?你的编辑对我来说仍然没有意义。:)记住你有不同的“级别”在顶层是一个索引数据库。每个站点可以有多个数据库,但通常使用一个。在一个数据库中,可以有多个存储。通常每种类型的数据都有一个存储区,因此用户存储区和任意存储区。在每个存储区中,可以有多个记录。为什么不将一个对象存储区与多个记录一起使用呢?