如何使用 NgxIndexedDB 从 indexedDB 索引中获取多条记录?
How do I get multiple records from an indexedDB index using NgxIndexedDB?
我使用 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);
}
);
我使用 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);
}
);