Spec-Zone.ru › Web APIs

IDBIndex: свойство keyPath

Базовая Широко доступная

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с сентября 2021 года.

  • Подробнее
  • Полная совместимость
  • Отправить отзыв

Примечание: Эта функция доступна в Потоках выполнения.

Свойство keyPath интерфейса IDBIndex возвращает путь к ключу текущего индекса. Если значение null, этот индекс не заполняется автоматически.

Значение

Любой тип данных, который может быть использован в качестве пути к ключу.

Примеры

В следующем примере мы открываем транзакцию и хранилище объектов, затем получаем индекс lName из простой базы данных контактов. Затем мы открываем базовый курсор на индексе, используя IDBIndex.openCursor — это работает так же, как открытие курсора непосредственно на ObjectStore с использованием IDBObjectStore.openCursor, за исключением того, что возвращаемые записи сортируются по индексу, а не по первичному ключу.

Путь к ключу текущего индекса выводится в консоль: он должен быть возвращён как lName.

Наконец, мы проходим по каждой записи и вставляем данные в HTML-таблицу. Полный рабочий пример см. в нашем демо репозитории примеров IndexedDB (посмотреть пример вживую).

function displayDataByIndex() {
  tableEntry.textContent = "";
  const transaction = db.transaction(["contactsList"], "readonly");
  const objectStore = transaction.objectStore("contactsList");

  const myIndex = objectStore.index("lName");
  console.log(myIndex.keyPath);

  myIndex.openCursor().onsuccess = (event) => {
    const cursor = event.target.result;
    if (cursor) {
      const tableRow = document.createElement("tr");
      for (const cell of [
        cursor.value.id,
        cursor.value.lName,
        cursor.value.fName,
        cursor.value.jTitle,
        cursor.value.company,
        cursor.value.eMail,
        cursor.value.phone,
        cursor.value.age,
      ]) {
        const tableCell = document.createElement("td");
        tableCell.textContent = cell;
        tableRow.appendChild(tableCell);
      }
      tableEntry.appendChild(tableRow);

      cursor.continue();
    } else {
      console.log("Entries all displayed.");
    }
  };
}

Спецификации

Спецификация
API баз данных индексов 3.0
# dom-idbindex-keypath

Совместимость браузеров

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
keyPath 23 12 10 15 8 25 22 14 8 1.5 4.4

См. также

  • Использование IndexedDB
  • Запуск транзакций: IDBDatabase
  • Использование транзакций: IDBTransaction
  • Указание диапазона ключей: IDBKeyRange
  • Извлечение и изменение данных: IDBObjectStore
  • Использование курсоров: IDBCursor
  • Пример: Уведомления о задачах (посмотреть пример вживую).

© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/IDBIndex/keyPath

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API