updates - 使用 Dexie,如何从表中所有对象的数组字段中删除值?

标签 updates indexeddb dexie

来自this question我可以找到表中数组字段中出现值的所有对象。现在我需要从该字段中删除该表中所有对象的该值。

例如,假设有一个 events 表,其中包含对象:

{ people: ['John', 'Bob', 'Sue'] }
{ people: ['Harry', 'Sue', 'Jim'] }
{ people: ['John', 'Bob', 'Elaine'] }
{ people: ['Jim', 'Bob', 'Sue'] }

假设我想从所有对象的 people 字段中删除“Sue”。

Dexie 是如何做到这一点的?

最佳答案

在异步函数中添加以下代码即可实现:

await db.events.where('people').equals('Sue').modify(x => {
  // This callback is run for every match.
  // Here you can modify the people property to remove Sue from it:
  x.people = x.people.filter(p => p !== 'Sue');
});

注意:假设架构正在使用多条目索引对“people”进行索引:

const db = new Dexie("testdb");
db.version(3).stores({
  events: 'id, *people'
});

引用文献:

关于updates - 使用 Dexie,如何从表中所有对象的数组字段中删除值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60121735/

相关文章:

python - 如何解决 Operand should contain 1 column(s) for update multiple rows in python?

java - 在 update() 方法中重置 boolean 值和 int 值时出现问题

javascript - 如何将上传的图像保存到 IndexedDB Javascript

javascript - IndexedDB 的包装函数

javascript - 如何在 Electron 桌面应用程序中管理表单提交?

javascript - 从 Dexie promise 中获取值(value)

安卓应用更新

c++ - 我有两个用 Visual Studio 构建的 Windows C++ 应用程序。现在我想开发一个更新应用程序来更新这些应用程序

javascript - Indexeddb 中止错误

php - 实时同步MySql和IndexedDB