IDBIndex: count() Methode
        
        
          
                Baseline
                
                  Widely available
                
                
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is well established and works across many devices and browser versions. It’s been available across browsers since Juli 2015.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die count() Methode des IDBIndex-Interfaces gibt ein IDBRequest-Objekt zurück und liefert in einem separaten Thread die Anzahl der Datensätze innerhalb eines Schlüsselbereichs.
Syntax
count()
count(key)
Parameter
keyOptional- 
Der Schlüssel oder Schlüsselbereich, der den zu zählenden Datensatz identifiziert.
 
Rückgabewert
Ein IDBRequest-Objekt, bei dem nachfolgende Ereignisse, die mit dieser Operation zusammenhängen, ausgelöst werden.
Wenn die Operation erfolgreich ist, ist der Wert der result-Eigenschaft des Antrags die Anzahl der Datensätze, die dem angegebenen Schlüssel oder Schlüsselbereich entsprechen.
Ausnahmen
Diese Methode kann einen DOMException der folgenden Typen auslösen:
TransactionInactiveErrorDOMException- 
Wird ausgelöst, wenn die Transaktion dieses
IDBIndexinaktiv ist. DataErrorDOMException- 
Wird ausgelöst, wenn der bereitgestellte Schlüssel oder Schlüsselbereich einen ungültigen Schlüssel enthält.
 InvalidStateErrorDOMException- 
Wird ausgelöst, wenn das
IDBIndexgelöscht oder entfernt wurde. 
Beispiele
Im folgenden Beispiel öffnen wir eine Transaktion und einen Objektstore, dann erhalten wir den Index lName aus einer einfachen Kontaktdatenbank. Wir öffnen dann einen einfachen Cursor auf dem Index mit IDBIndex.openCursor — dies funktioniert genauso wie das Öffnen eines Cursors direkt auf einem ObjectStore mit IDBObjectStore.openCursor, außer dass die zurückgegebenen Datensätze basierend auf dem Index und nicht auf dem Primärschlüssel sortiert sind.
myIndex.count() wird dann verwendet, um die Anzahl der Datensätze im Index zu zählen, und das Ergebnis dieser Anfrage wird in die Konsole protokolliert, wenn der Erfolg-Callback zurückkehrt.
Schließlich gehen wir durch jeden Datensatz und fügen die Daten in eine HTML-Tabelle ein. Ein vollständiges Arbeitsbeispiel finden Sie in unserem IndexedDB-examples Demo-Repo (Beispiel live ansehen).
function displayDataByIndex() {
  tableEntry.textContent = "";
  const transaction = db.transaction(["contactsList"], "readonly");
  const objectStore = transaction.objectStore("contactsList");
  const myIndex = objectStore.index("lName");
  const countRequest = myIndex.count();
  countRequest.onsuccess = () => {
    console.log(countRequest.result);
  };
  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.");
    }
  };
}
Spezifikationen
Browser-Kompatibilität
Loading…
Siehe auch
- Verwendung von IndexedDB
 - Starten von Transaktionen: 
IDBDatabase - Nutzung von Transaktionen: 
IDBTransaction - Festlegen eines Schlüsselbereichs: 
IDBKeyRange - Abrufen und Ändern Ihrer Daten: 
IDBObjectStore - Verwendung von Cursors: 
IDBCursor - Referenzbeispiel: To-do-Benachrichtigungen (Beispiel live ansehen).