为什么我无法通过IndexedDB 中的IDBKeyRange.bound 函数得到正确的结果?

Why I cannot get the correct result through IDBKeyRange.bound function in IndexedDB?

我有一个模拟 indexedDB 包含如下项目:

{
 id:1002, 
 name:"Frank", 
 company: "dg",
 age:30 
}

并且我已经创建了索引 ['name','age','company'] ,只是想得到我需要的结果就像 websql 一样。

getMultipleDataByRange function定义为获取项,我设置['0',24,'ef']lowerBound['z',24,'ef']upperBound,我认为它应该显示结果匹配 24 岁加上公司为 "ef" 的项目。但是结果显示所有项目都符合我设置的范围。如何设置范围以获得正确的结果。

代码也可以通过JSBIN查看link 我生成了:

http://jsbin.com/sinuxa/edit?js,console

如果您更改索引的顺序,使变化的部分(名称)位于末尾,它就会起作用。如果您想知道原因,请参阅 In IndexedDB, is there a way to make a sorted compound query? 了解复合索引在 IndexedDB 中的工作原理。