2014-01-03 3 views

ответ

0

В настоящее время это невозможно. Элемент keyPath должен быть строкой.

+0

Если я хочу применить индекс к элементу массива, который является строкой. В объекте над массивом Student есть свойство name, можно ли применить индекс по имени и как? –

4

Что бы я сделал, это иметь два отдельных хранилища объектов внутри вашей базы данных, один из которых представляет teachers и тот, который представляет students.

Тогда я бы хранить teacher объект как:

{ 
    name: 'John Smith', 
    subject: 'Maths', 
    students: [1,2,3,4,5] 
} 

Тогда я должен был бы магазин для students как:

{ 
    id: 1, 
    name: 'Jane Doe' 
} 

Я бы тогда иметь id ключевой путь в обоих (автогенерируется или нет, в зависимости от того, синхронизируется ли она где-то), поэтому у вас есть уникальный идентификатор данных.

Наконец, вы можете создать index на students собственности учителя и установить multiEntry flag to true так, что, как известно, является массивом, и вы можете запросить хранилище объектов на нем в виде массива, см here для получения дополнительной информации о multiEntry индексов.

Примечание: В момент написания IE10 & IE11 не поддерживает multiEntry индексов в IndexedDB.

+0

Спасибо Slace. Меня устраивает. –

+0

Хорошо работать для меня, спасибо – jlafforgue

Смежные вопросы