--- title: IDBKeyRange.upperBound() slug: Web/API/IDBKeyRange/upperBound tags: - API - IDBKeyRange - IndexedDB - Méthode - Reference translation_of: Web/API/IDBKeyRange/upperBound ---
{{APIRef("IndexedDB")}}

La méthode upperBound(), rattachée à l'interface  {{domxref("IDBKeyRange")}}, crée un intervalle de clé avec une borne supérieure.

Par défaut, la borne est inclue dans l'intervalle (autrement dit, il est fermé à droite).

{{AvailableInWorkers}}

Syntaxe

IDBKeyRange.upperBound(borne);
IDBKeyRange.upperBound(borne, ouvert);

Paramètres

borne
La valeur de la borne supérieure pour l'intervalle.
ouvert {{optional_inline}}
Ce booléen indique si l'intervalle est ouvert à droite (autrement dit, s'il vaut false la borne est inclue et s'il vaut true la borne n'est pas inclue dans l'intervalle).

Valeur de retour

Un objet {{domxref("IDBKeyRange")}} qui correspond à l'intervalle de clé créé.

Exceptions

Cette méthode peut lever une exception {{domxref("DOMException")}} de type DataError lorsque la valeur passée en paramètre n'est pas une clé valide.

Exemples

Dans l'exemple qui suit, on illustre comment créer un intervalle de clé avec une borne supérieure, on utilise keyRangeValue = IDBKeyRange.upperBound("F"); — cela permet de créer un intervalle qui contient "F" et les valeurs inférieures. On ouvre ensuite une transaction grâce à {{domxref("IDBTransaction")}}) puis un magasin d'objet et un curseur avec la méthode {{domxref("IDBObjectStore.openCursor")}} à laquelle on associe l'intervalle de clé keyRangeValue.

Si on a avait utilisé IDBKeyRange.upperBound("F", true);, "F" n'aurait pas fait partie de l'intervalle.

function displayData() {
  var keyRangeValue = IDBKeyRange.upperBound("F");

  var transaction = db.transaction(['fThings'], 'readonly');
  var objectStore = transaction.objectStore('fThings');

  objectStore.openCursor(keyRangeValue).onsuccess = function(event) {
    var cursor = event.target.result;
      if(cursor) {
        var listItem = document.createElement('li');
        listItem.innerHTML = '<strong>' + cursor.value.fThing + '</strong>, ' + cursor.value.fRating;
        list.appendChild(listItem);

        cursor.continue();
      } else {
        console.log('Les éléments sont affichés.');
      }
    };
  };

Note : Pour un exemple complet qui utilise les intervalles de clé, vous pouvez consulter le dépôt GitHub IDBKeyRange-example (ainsi que la démonstration associée).

Spécification

Spécification État Commentaires
{{SpecName('IndexedDB', '#widl-IDBKeyRange-upperBound-IDBKeyRange-any-upper-boolean-open', 'upperBound()')}} {{Spec2('IndexedDB')}}  

Compatibilité des navigateurs

{{CompatibilityTable}}
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, partial 15 7.1
Disponible dans les web workers {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatGeckoMobile("37.0")}} {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}}
Fonctionnalité Android Webview Android Edge Firefox Mobile (Gecko) IE Phone Opera Mobile Safari Mobile Chrome pour Android
Support simple 4.4 {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatGeckoMobile("22.0")}} 10 22 8 {{CompatVersionUnknown}}
Disponible dans les web workers {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatGeckoMobile("37.0")}} {{CompatUnknown}} {{CompatVersionUnknown}} {{CompatUnknown}} {{CompatVersionUnknown}}

Voir aussi