Angular 创建/使用复合索引IndexedDB

Angular 创建/使用复合索引IndexedDB,angular,indexeddb,Angular,Indexeddb,我试图在angular应用程序中实现IndexedDB,但在创建和使用复合索引时遇到了问题 我有一些我想要的索引 const objectStore: IDBObjectStore = this._Database.createObjectStore('data', {autoIncrement: true}); objectStore.createIndex('duplicate', ['sId', 'type', 'cancel']); objectStore.createIndex('id

我试图在angular应用程序中实现
IndexedDB
,但在创建和使用复合索引时遇到了问题

我有一些我想要的索引

const objectStore: IDBObjectStore = this._Database.createObjectStore('data', {autoIncrement: true});
objectStore.createIndex('duplicate', ['sId', 'type', 'cancel']);
objectStore.createIndex('id', ['id']);
当我向数据库添加数据并查看Chrome DevTools时,我看到对象存储中有数据,但没有索引

我试图使用的
replicate
索引检查是否存在某些内容。我试图完成的SQL查询如下所示

SELECT * FROM data WHERE sID = {someValue} AND type = {someValue} AND cancel = {someValue}
当我试图提出请求时,它是这样的

const request: IDBRequest = objectStore.index('duplicate').count(IDBKeyRange.only([data.sId, data.type, 0]));
但是伯爵回来时总是一无所获,我甚至以为它已经保存到商店里了

如果我使用单键路径,比如

objectStore.createIndex('id', ['id']);
但是具有多个键的关键路径不起作用


有人能告诉我我做错了什么吗?

1)你能澄清一下“伯爵总是一无所获”是什么意思吗?2) 您确定计数的参数与对象存储中的值是相同的变量类型(例如字符串与数字)?@Josh 1。这意味着我希望
objectStore.index('duplicate').count请求返回一个数字,如果该索引中有内容(应该有)。2.再次查看,
0
参数与对象的数据类型不匹配(它是一个布尔值),但即使当我查看
应用程序下Chrome DevTools中的数据库时,索引中也没有任何内容。1) 计数的返回类型是什么?它应该是0或更大的整数。你有没有看到像“未定义”这样的东西?2) 无法为布尔值编制索引,不确定如何创建这样的索引,调用时应收到错误createIndex@Josh返回的是一个数字(在本例中为0,因为索引为空)。2.啊哈!我没有意识到这一点,当我从索引中取出布尔值时,我在索引中得到了一些东西。那么,现在检查布尔值的唯一方法是遍历所有内容并检查布尔值吗?存储1为真,存储0为假。或者,为true存储1或字符串值之类的内容,为false存储任何属性。