Существует object store
с именем 'data'
с keyPath: 'id'
, структурированные данные показаны ниже
{"id":860,
"data":{
"a":[], // json array
"b":[], // json array
"c":{}, // json object
"d":{}, // json object
}
}
, эти структурированные данные не должны дублироваться, и только одна из этих структурированных данных должна быть записана в data
объект магазина. Тем не менее, его можно обновлять и расширять.
Для обновления этого документа я до сих пор получал весь документ, добавлял данные, переписывал и заменял старый документ, как показано ниже:
if (data != undefined) {
data.a.push(obj); <= update
var item = { id:860, data: data };
write('data', item); <= replace on the old document
}
Хотя этого недостаточно. потому что, когда документ большой, мне нужно получить толстый документ и заменить толстый документ на старый.
Знаете ли вы, как я могу обновить документ с помощью не используется выборка и замена?
Комментарий / ответ
Я не совсем уверен, почему вы хотите, чтобы ОДИН объект сохранял N записей данных вместо N объектов.
Проект был разработан для работы только с 1 экземпляром документа. потому что каждый ID
основан на 1 экземпляре идентификатора. следовательно, я должен предотвратить object store
от дублирования этого документа, либо старого, либо нового.
Стоит сказать, что другие части кода имеют дело с 1 экземпляром этого документа. в противном случае возникает исключение или смесь старого и нового документа.
но внутри этого одного объекта у вас есть данные, которые растут. Так в чем же смысл более крупного объекта?
. Основная цель наличия единственного экземпляра документа - целостность и упрощение CRUD
для indexedDB
.
Например: если я разделю ток object store
на несколько object store
с, это усложнит поддержание indexedDB
. потому что, вместо того, чтобы иметь дело с object store
, мне приходится иметь дело с несколькими object store
s. действительно, будет гораздо сложнее, когда object stores
будет постоянно обновляться.