我使用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);
});
经过一些试验和错误后,我能够根据Josh的线索使用getAll函数来完成。谢谢乔希。这是方法。
this.db.openDatabase(1, evt => {
let objectStore = evt.currentTarget.result.createObjectStore(‘empCollection’, { keyPath: '_id', autoIncrement: false });
console.log("Open DB is called...")
objectStore.createIndex(‘empname’, ‘empname’, { unique: false });
});
let index_detail:IndexDetails = {
indexName: 'empname',
order: 'asc'
}
this.db.getAll(‘empCollection’,IDBKeyRange.only(“Dave”),index_details).then(
names => {
console.log(names);
},
error => {
console.log(error);
}
);