使用 Dexie,如何从 table 中所有对象的数组字段中删除一个值?
With Dexie, how to remove a value from an array field for all objects in the table?
从 我可以在我的 table 中找到所有对象,其中值出现在数组字段中。现在我需要从那个字段中删除那个值,对于 table.
中的所有对象
例如,假设一个 events
table,对象为:
{ 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' 与 multiEntry 索引:
const db = new Dexie("testdb");
db.version(3).stores({
events: 'id, *people'
});
参考文献:
从
例如,假设一个 events
table,对象为:
{ 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' 与 multiEntry 索引:
const db = new Dexie("testdb");
db.version(3).stores({
events: 'id, *people'
});
参考文献: