MDN wants to talk to developers like you: https://qsurvey.mozilla.com/s3/8d22564490d8

IDBIndex.multiEntry

La propriété multiEntry, rattachée à l'interface IDBIndex, est un booléen qui indique le comportement de l'index lorsque le résultat de l'évaluation d'un chemin de clé renvoie un tableau.

Ce comportement est paramétré au moment où l'index est créé avec la méthode IDBObjectStore.createIndex. Cette méthode permet d'utiliser un paramètre facultatif options pour définir la propriété multiEntry avec true/false.

Note : Cette fonctionnalité est disponible via les Web Workers.

Syntaxe

var monIndex = objectStore.index('index');
console.log(monIndex.multiEntry);

Valeur

Un booléen. S'il vaut true, cela signifie qu'il y a autant d'enregistrement que de valeurs dans le tableau renvoyé lors de l'évaluation du chemin (les clés des enregistrements sont les valeurs du tableau). S'il vaut false, cela signifie qu'il n'y aura qu'un seul enregistrement ajouté et que la clé sera le tableau.

Exemples

Dans l'exemple qui suit, on ouvre une transaction sur un magasin d'objets et on récupère l'index lName depuis la base de données des contacts. Ensuite, on ouvre un curseur simple sur l'index grâce à la méthode IDBIndex.openCursor (cela fonctionne comme si on avait directement ouvert un curseur sur le magasin d'objets avec IDBObjectStore.openCursor mais les enregistrements sont ici renvoyés en étant triés selon l'index et non selon la clé primaire.

La propriété multiEntry est affichée dans la console. Dans cet exemple, elle a la valeur false.

Enfin, on parcourt chacun des enregistrements pour insérer les données dans un tableau HTML. Pour consulter un exemple complet, vous pouvez vous référer à notre dépôt IDBIndex-example (voir également la démo live).

function displayDataByIndex() {
  tableEntry.innerHTML = '';
  var transaction = db.transaction(['contactsList'], 'readonly');
  var objectStore = transaction.objectStore('contactsList');

  var myIndex = objectStore.index('lName'); 
  console.log(myIndex.multiEntry);

  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('Les éléments ont été affichés.');    
    }
  };
};

Spécifications

Spécification État Commentaires
Indexed Database API
La définition de 'multiEntry' dans cette spécification.
Recommendation  

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support simple 23webkit
24
10 moz
16.0 (16.0)
10 15 7.1
Disponible dans les web workers (Oui) 37.0 (37.0) ? (Oui) ?
Fonctionnalité Android Webview Android Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile Chrome pour Android
Support simple 4.4 (Oui) 22.0 (22.0) 10 22 8 (Oui)
Disponible dans les web workers (Oui) (Oui) 37.0 (37.0) ? (Oui) ? (Oui)

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, gadgino
 Dernière mise à jour par : SphinxKnight,