--- title: IDBObjectStore.keyPath slug: Web/API/IDBObjectStore/keyPath tags: - API - IDBObjectStore - IndexedDB - Propriété - Reference - keyPath translation_of: Web/API/IDBObjectStore/keyPath ---
La propriété keyPath
de l'interface {{domxref("IDBObjectStore")}} renvoie le chemin de la clé de ce magasin d'objet.
Si cette propriété vaut null
l'application doit fournir une clé pour chaque opération de modification.
{{AvailableInWorkers}}
var mykeyPath = objectStore.keyPath;
N'importe quel type de valeur.
Dans l'exemple suivant, on initialise une transaction de lecture/écriture sur une base de données en ajoutant des données dans un magasin d'objets via la méthode add()
. Une fois l'objet créé, on affiche objectStore.keyPath
en sortie de la console. Pour un exemple complet et fonctionnel, vous pouvez utiliser notre application To-do Notifications (tester la démo).
// On commence par ouvrir la base de données var DBOpenRequest = window.indexedDB.open("toDoList", 4); DBOpenRequest.onsuccess = function(event) { note.innerHTML += '<li>Initialisation de la base.</li>'; // On enregistre le résultat de l'ouverture // dans la variable db afin de l'utiliser // ensuite var db = DBOpenRequest.result; // On utilise la fonction addData() afin d'ajouter // des données à la base de données addData(); }; function addData() { // On crée un nouvel objet prêt à être inséré // dans la base de données var newItem = [ { taskTitle: "Promener le chien", hours: 19, minutes: 30, day: 24, month: "Décembre", year: 2013, notified: "no" } ]; // On ouvre une transaction en lecture/écriture // vers la base de données afin d'ajouter des // données var transaction = db.transaction(["toDoList"], "readwrite"); // On indique le succès de la transaction transaction.oncomplete = function(event) { note.innerHTML += '<li>Transaction terminée : modification finie.</li>'; }; transaction.onerror = function(event) { note.innerHTML += '<li>Transaction non-ouverte à cause d'une erreur. Les doublons ne sont pas autorisés.</li>'; }; // On crée un magasin d'objet pour la transaction // et on affiche KeyPath dans la console var objectStore = transaction.objectStore("toDoList"); console.log(objectStore.keyPath); // On ajoute l'objet newItem au magasin d'objets var objectStoreRequest = objectStore.add(newItem[0]); objectStoreRequest.onsuccess = function(event) { // On indique le succès de l'ajout de l'objet // dans la base de données note.innerHTML += '<li>Un nouvel élément a été ajouté dans la base de données.</li>'; }; };
Spécification | État | Commentaires |
---|---|---|
{{SpecName('IndexedDB', '#widl-IDBObjectStore-keyPath', 'keyPath')}} | {{Spec2('IndexedDB')}} |
Fonctionnalité | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|---|
Support simple |
23{{property_prefix("webkit")}} 24 |
{{CompatVersionUnknown}} | 10 {{property_prefix("moz")}} {{CompatGeckoDesktop("16.0")}} |
10, partiel | 15 | 7.1 |
Disponible dans les web workers | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile("37.0")}} | {{CompatUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} |
Fonctionnalité | Android | Webview Android | Edge | Firefox Mobile (Gecko) | Firefox OS | IE Phone | Opera Mobile | Safari Mobile | Chrome pour Android |
---|---|---|---|---|---|---|---|---|---|
Support Simple |
4.4 | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile("22.0")}} | 1.0.1 | 10 | 22 | 8 | {{CompatVersionUnknown}} |
Disponible dans les web workers | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatGeckoMobile("37.0")}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatVersionUnknown}} | {{CompatUnknown}} | {{CompatVersionUnknown}} |