Javascript 仅更新IndexedDB中对象的某些字段
例如:Javascript 仅更新IndexedDB中对象的某些字段,javascript,indexeddb,Javascript,Indexeddb,例如: object1(1)={ 姓名:“罗多克中士”, 特色:“肉搏战” } 然后我只想将专业字段更新为: object1(1)={ 姓名:“罗多克中士”, 特长:“远程作战” } 谢谢。 不能进行部分更新,只能覆盖整个对象 从内存中读取对象,对其进行更改,然后将其写回 这可以通过以下步骤实现- 首先使用idbcursor获取项目 更新该项目 调用cursor.update将更新的数据存储在indexedb中 一个示例代码是—— const transaction = db.transacti
object1(1)={
姓名:“罗多克中士”,
特色:“肉搏战”
}
然后我只想将专业字段更新为:
object1(1)={
姓名:“罗多克中士”,
特长:“远程作战”
}
谢谢。- 不能进行部分更新,只能覆盖整个对象
- 从内存中读取对象,对其进行更改,然后将其写回
cursor.update
将更新的数据存储在indexedb中const transaction = db.transaction(['rushAlbumList'], 'readwrite');
const objectStore = transaction.objectStore('rushAlbumList');
objectStore.openCursor().onsuccess = function(event) {
const cursor = event.target.result;
if (cursor) {
if (cursor.value.albumTitle === 'A farewell to kings') {
const updateData = cursor.value;
updateData.year = 2050;
const request = cursor.update(updateData);
request.onsuccess = function() {
console.log('data updated');
};
};
cursor.continue();
}
};
查看此链接了解更多信息-
注意:-在上面的代码中,我循环遍历所有记录,如果您想根据某些条件获取特定记录,这是不有效的。因此,您可以使用idbKeyRange或其他idb查询选项进行此操作。在决定更新单个对象时,这可能会访问集合中的每个对象?是的,我想展示如何更新特定值。只是在我的回答中加了一个注释。