Как получить несколько записей из индекса indexedDB, используя NgxIndexedDB? - PullRequest
0 голосов
/ 22 февраля 2019

Я создал базу данных IndexedDB, используя NgxIndexedDB , и создал индекс, который не является уникальным.Когда я читаю записи, используя 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);
});

1 Ответ

0 голосов
/ 23 февраля 2019

После некоторых проб и ошибок я смог сделать это, используя функции 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);
          }
        );
...