【发布时间】:2019-02-26 23:55:52
【问题描述】:
我使用NgxIndexedDB 创建了一个IndexedDB 数据库,并创建了一个不唯一的索引。当我使用getByIndex() 读取记录时,它只返回一条记录,尽管我知道有更多记录匹配。获取所有匹配记录的机制是什么?
this.db = new NgxIndexedDB(‘mydb’, 1);
this.db.openDatabase(1, evt => {
let objectStore = evt.currentTarget.result.createObjectStore(‘amp’,
{keyPath: '_id', autoIncrement: false });
console.log("Open DB is called...")
objectStore.createIndex(‘empname’, ‘empname’, { unique: false });
});
this.db.getByIndex(‘amp,’empname’,’Dave’).then(names => {
console.log(names);
resolve(names);
},
error => {
console.log(error);
});
【问题讨论】:
-
请提供getByIndex的定义或更详细的NgxIndexedDB描述。需要它来帮助回答您的问题。
-
我根据这里给出的信息使用了这个。 npmjs.com/package/ngx-indexed-db (npm install ngx-indexed-db) getByIndex(storeName: string, indexName: string, key: any): Promise
;这是那里给出的用法示例 db.getByIndex('people', 'name', 'Dave').then( person => { console.log(person); }, error => { console.log(error); }); -
我已编辑问题以添加参考文档
-
文档说 getByIndex 返回一个项目。您是否尝试过使用 getAll? github.com/assuncaocharles/ngx-indexed-db/blob/master/projects/…
-
我试过 getALL(没有任何参数)。它正在检索集合中的整个记录集。但我只需要那个特定的匹配条件。但是他们提到了 getAll 的另一个参数,即索引详细信息。我不确定这是否可行? getAll(storeName: string, keyRange?: IDBKeyRange, indexDetails?: IndexDetails): Promise
;但是我已经尝试但没有成功拨打该电话并且正在重新调整错误
标签: javascript indexeddb