特定索引的getAll与键范围的getAll之间的区别

时间:2019-05-01 05:27:56

标签: javascript indexeddb

我对使用索引和键范围之间的方法差异感到困惑。

在带有复合键的indexedDB对象存储中,例如数组[ topic, note ],其中一部分复合键(这里为topic)也是对象存储中的索引,请解释以下内容之间是否有区别?请注意,k仅返回具有相同topic_value的所有记录的键范围。

我问的一个原因是因为该MDN document第二段中的陈述涉及在有关“性能成本”和“延迟创建的对象”的索引上使用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 :(得分:0)

当您将非IDBKeyRange值指定为getAll时,将暗示IDBKeyRange.only(value)

例如,getAll(value)等效于getAll(IDBKeyRange.only(value))

这同时适用于store.getAllstore.index().getAll,因为两者之间没有区别。