Разница между getAll для определенного индекса и get для ключевого диапазона - PullRequest
1 голос
/ 01 мая 2019

Меня немного смущает различие в подходе между использованием индекса и диапазона ключей.

В хранилище объектов indexedDB с составным ключом, таким как массив [ topic, note ], в которомчасть составного ключа, здесь topic, также является индексом в хранилище объектов. Не могли бы вы объяснить, есть ли разница между следующим?Обратите внимание, что k просто возвращает диапазон ключей всех записей с одинаковым значением topic.value.

Одна из причин, по которой я спрашиваю, связана с утверждением во втором абзаце этого документа MDN об использованииgetAll по индексу, касающемуся "затрат на производительность" и объектов, "создаваемых лениво".

Спасибо.

o = T.objectStore( 'notes' ).index( 'topic' )
req = o.getAll( topic_value );

и

o = T.objectStore( 'notes' ).
k = IDBKeyRange.bound( [ topic_value, 0 ], [ topic_value + 1, 0 ], false, true ); 
req = o.getAll( k );

1 Ответ

0 голосов
/ 02 мая 2019

Когда вы указываете значение не IDBKeyRange для getAll, подразумевается IDBKeyRange.only(value).

Например, getAll(value) эквивалентно getAll(IDBKeyRange.only(value)).

Это относится ки store.getAll, и store.index().getAll, поскольку между ними нет разницы.

...