带有子对象的 IndexedDB 多条目
IndexedDB multyentry with sub objects
假设我有一个名为 'project' 的 indexedDB objectStore,如下所示:
{
name: 'Project name',
description: '.....',
users: [
{
name: 'Adam',
role: 'admin'
},
{
name: 'Mary',
role: 'simpleUser'
},
]
}
如何创建索引来检索特定用户的所有项目,例如 Adam 的所有项目?
我试过 objectStore.createIndex('byUser', 'users.name', { unique: false, multiEntry:true });
但它不起作用。
不幸的是,键路径(即使是多条目)也不会遍历数组。
您需要在添加数据之前对其进行预处理,例如每条记录:
record.user_names = record.users.map(u => u.name);
...然后你可以使用:
objectStore.createIndex('byUser', 'users.user_names', { multiEntry:true });
在以下位置跟踪了对此的功能请求:https://github.com/w3c/IndexedDB/issues/35
假设我有一个名为 'project' 的 indexedDB objectStore,如下所示:
{
name: 'Project name',
description: '.....',
users: [
{
name: 'Adam',
role: 'admin'
},
{
name: 'Mary',
role: 'simpleUser'
},
]
}
如何创建索引来检索特定用户的所有项目,例如 Adam 的所有项目?
我试过 objectStore.createIndex('byUser', 'users.name', { unique: false, multiEntry:true });
但它不起作用。
不幸的是,键路径(即使是多条目)也不会遍历数组。
您需要在添加数据之前对其进行预处理,例如每条记录:
record.user_names = record.users.map(u => u.name);
...然后你可以使用:
objectStore.createIndex('byUser', 'users.user_names', { multiEntry:true });
在以下位置跟踪了对此的功能请求:https://github.com/w3c/IndexedDB/issues/35