我有一个带有keypath [“feed_id”,“item_id”]的IDB对象存储“feeditems”,插入os.put({feed_id:1,item_id:2,text:"foo"});
的对象工作正常。
现在我想得到feed_id为13的所有feeditems的数量。问题是即使https://developer.mozilla.org/en-US/docs/Web/API/IDBObjectStore上通常很好的MDN文档也只说关键参数是“键或键范围用于标识要计算的记录。“,但是os.count({feed_id:13})
失败且出现DataError
异常”参数不是有效密钥。“。
那么,如何使用feed_id == x得到所有项目的计数(以及后来如何迭代)?
请注意,唯一性仅适用于feed_id和item_id - 很可能是一个条目{feed_id:1,item_id:1},另一个条目{feed_id:2,item_id:1}!
答案 0 :(得分:1)
您仍需要索引要查询的字段feed_id
。然后计算索引。复合索引与此查询无关。
var index = objectStore.index('feed_id');
var req = index.count(IDBKeyRange.only(13);