IDBIndex.keyPath
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.
La propriété keyPath
de l'interface IDBIndex
renvoie le chemin de clé de l'index. Si l'index n'est pas automatiquement mise à jour la propriété vaux null
.
Note : Cette fonctionnalité est disponible via les Web Workers.
Syntaxe
var keyPath = myIndex.keyPath;
Valeur
Tous types de valeur pouvant être utilisés comme chemin de clé.
Exemple
Dans l'exemple suivant on ouvre une transaction puis un magasin d'objet et enfin l'index lName
.
Le chemin de clé de l'index est affiché sur la console (ici: lName
).
Finalement, On itère sur tous les enregistrements pour en insérer les données dans un tableau HTML. En utilisant la méthode IDBIndex.openCursor
qui travaille de la même façon que la méthode IDBObjectStore.openCursor
de l'accès
au magasin d'objet sauf que les enregistrements sont renvoyés dans l'ordre de l'index et non celui du magasin d'objet.
function displayDataByIndex() {
tableEntry.innerHTML = "";
//ouvre un transaction
var transaction = db.transaction(["contactsList"], "readonly");
//accés au magasin d'objet
var objectStore = transaction.objectStore("contactsList");
//on récupère l'index
var myIndex = objectStore.index("lName");
//on affiche le chemin de clé de l'index sur la console
console.log(myIndex.keyPath);
//un curseur qui itère sur l'index
myIndex.openCursor().onsuccess = function (event) {
var cursor = event.target.result;
if (cursor) {
var tableRow = document.createElement("tr");
tableRow.innerHTML =
"<td>" +
cursor.value.id +
"</td>" +
"<td>" +
cursor.value.lName +
"</td>" +
"<td>" +
cursor.value.fName +
"</td>" +
"<td>" +
cursor.value.jTitle +
"</td>" +
"<td>" +
cursor.value.company +
"</td>" +
"<td>" +
cursor.value.eMail +
"</td>" +
"<td>" +
cursor.value.phone +
"</td>" +
"<td>" +
cursor.value.age +
"</td>";
tableEntry.appendChild(tableRow);
cursor.continue();
} else {
console.log("Tous les enregistrements ont été affichés.");
}
};
}
Note : Pour un exemple de travail complet, voir notre To-do Notifications app (view example live).
Spécifications
Specification |
---|
Indexed Database API 3.0 # dom-idbindex-keypath |
Compatibilité des navigateurs
BCD tables only load in the browser