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