indexeddb (IDB) индекс не работает для поля года - PullRequest
0 голосов
/ 26 августа 2018

Я новичок в indexedDB (IDB) и пытаюсь работать на CRUD, используя обещанный API IndexedDB от jakearchibald.Я могу создать базу данных, а также ObjectStore и индексы

Создание базы данных

createEmptyDB: function () {
    return new Promise( function (resolve) {
      idb.open( IDB.dbName, 1, function (idbCx) {
      }).then( resolve)
      .catch( function (err) {
      reject( err);
    });
    });
  }

Я создал таблицу книг и индексов, название и год.

Создание таблицы / objectStore и индексов

createTableAndIndex: function (tableName) {
    return new Promise( function (resolve) {
      idb.open( IDB.dbName, 2, function (idbCx) {
        if (!idbCx.objectStoreNames.contains(tableName)) {
          bookssOS = idbCx.createObjectStore(tableName, {keyPath:"id",autoIncrement:true,});
          bookssOS.createIndex('title', 'title', {unique: false});
          bookssOS.createIndex('year', 'year', {unique: false});
        }

      }).then( resolve);
    });
  }

Я создал курсор для извлечения данных, соответствующих названию книги как «Book6»

Курсор для итерации значений из таблиц книг

fetchUsingCursor: function ( tableName) {
  return new Promise( function (resolve, reject) {
    idb.open( IDB.dbName).then( function (idbCx) {  // idbCx is a DB connection
      var tx = idbCx.transaction('books', 'readonly');
      var store = tx.objectStore('books');

      var storeIndex = store.index('title');
      var range = IDBKeyRange.only("Book6");

     // var storeIndex = store.index('year');
     // var range = IDBKeyRange.only(2000);

      return storeIndex.openCursor(range);
    }).then(function bookItems(cursor) {
      if (!cursor) {
        return;
      }

      for (var field in cursor.value) {
        console.log(cursor.value['title']);
      }
      return cursor.continue().then(bookItems);
    })
    .catch( function (err) {
      reject( err);
    });
  });
}

Но когда я пытаюсь выбрать книги, сопоставив год '2000', комментируя заголовок индекса и включив индекс года, он не получилкниги добавлены с 2000 года, как следует из отчета.Пожалуйста, помогите мне найти проблему и заранее спасибо.

"books":[
        {id: "006251587X", title: "Book1", year: 2000, edition: 2},
        {id: "0465026567", title: "Book2", year: 2000, edition: 3},
        {id: "0465030793", title: "Book3", year: 1990,  edition: 4},
        {id: "0465030794", title: "Book4", year: 2000,  edition: 4},
        {id: "0465030795", title: "Book5", year: 2000,  edition: 4},
        {id: "0465030796", title: "Book6", year: 1990,  edition: 4}
      ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...