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

时间:2016-05-18 14:05:32

标签: javascript html5 indexeddb web-frontend web-storage

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

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

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

为获取项目而定义了

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

代码也可以通过我生成的JSBIN链接来检查:

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

1 个答案:

答案 0 :(得分:3)

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