2016-03-16 68 views
0

假設我有一個IndexedDB的對象存儲命名爲「項目」是這樣的:IndexedDB的multyentry與子對象

{ 
    name: 'Project name', 
    description: '.....', 
    users: [ 
     { 
      name: 'Adam', 
      role: 'admin' 
     }, 
     { 
      name: 'Mary', 
      role: 'simpleUser' 
     }, 
    ] 
} 

如何創建一個索引檢索特定用戶的所有項目,例如所有Adam的項目?我試過objectStore.createIndex('byUser', 'users.name', { unique: false, multiEntry:true });,但它不起作用。

回答

1

不幸的是,keypaths(即使有多項目)也不會遍歷數組。

您需要在添加數據之前預先處理數據,例如,每個記錄:

record.user_names = record.users.map(u => u.name); 

...然後你可以使用:https://github.com/w3c/IndexedDB/issues/35

objectStore.createIndex('byUser', 'users.user_names', { multiEntry:true }); 

這一個特點請求在跟蹤