假设我有一个名为' 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 });
,但它无法正常工作。
答案 0 :(得分:1)
不幸的是,密钥路径(即使是多项)也不会遍历数组。
您需要在添加数据之前对其进行预处理,例如:对于每条记录:
record.user_names = record.users.map(u => u.name);
...然后你可以使用:
objectStore.createIndex('byUser', 'users.user_names', { multiEntry:true });