如何使用NgxIndexedDB从indexedDB索引中获取多条记录?

问题描述 投票:0回答:1

我使用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);
});
javascript indexeddb
1个回答
0
投票

经过一些试验和错误后,我能够根据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);
          }
        );
© www.soinside.com 2019 - 2024. All rights reserved.