IDBDatabase: Methode createObjectStore()
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.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die createObjectStore()
-Methode der IDBDatabase
-Schnittstelle erstellt und gibt einen neuen IDBObjectStore
zurück.
Die Methode erwartet den Namen des Stores sowie ein Parameterobjekt, das es Ihnen ermöglicht, wichtige optionale Eigenschaften zu definieren. Sie können die Eigenschaft verwenden, um einzelne Objekte im Store eindeutig zu identifizieren. Da die Eigenschaft ein Identifikator ist, sollte sie für jedes Objekt eindeutig sein und jedes Objekt sollte diese Eigenschaft aufweisen.
Diese Methode kann nur innerhalb einer versionchange
-Transaktion aufgerufen werden.
Syntax
createObjectStore(name)
createObjectStore(name, options)
Parameter
name
-
Der Name des zu erstellenden neuen Object Stores. Beachten Sie, dass es möglich ist, einen Object Store mit einem leeren Namen zu erstellen.
options
Optional-
Ein Optionsobjekt, dessen Attribute optionale Parameter für die Methode sind. Es umfasst folgende Eigenschaften:
keyPath
Optional-
Der Key-Pfad, der vom neuen Object Store verwendet werden soll. Wenn nicht angegeben oder leer, wird der Object Store ohne einen Key-Pfad erstellt und verwendet out-of-line keys. Sie können auch ein Array als
keyPath
übergeben. autoIncrement
Optional-
Wenn
true
, hat der Object Store einen Key-Generator. Standardmäßig ist dieserfalse
.
Rückgabewert
Ein neuer IDBObjectStore
.
Ausnahmen
Diese Methode kann eine DOMException
mit einem name
der folgenden Typen auslösen:
ConstraintError
DOMException
-
Wird ausgelöst, wenn ein Object Store mit dem angegebenen Namen (basierend auf einem Groß-/Kleinschreibungssensitiven Vergleich) bereits in der verbundenen Datenbank existiert.
InvalidAccessError
DOMException
-
Wird ausgelöst, wenn
autoIncrement
auf true gesetzt ist undkeyPath
entweder ein leerer String oder ein Array ist. InvalidStateError
DOMException
-
Wird ausgelöst, wenn die Methode nicht aus einem
versionchange
-Transaktions-Callback aufgerufen wurde. SyntaxError
-
Wird ausgelöst, wenn die
keyPath
-Option einen ungültigen Key-Pfad enthält. TransactionInactiveError
DOMException
-
Wird ausgelöst, wenn eine Anfrage an eine Quelldatenbank gestellt wird, die nicht existiert (zum Beispiel, wenn die Datenbank gelöscht oder entfernt wurde) oder wenn die zugehörige Upgrade-Transaktion abgeschlossen ist oder eine Anfrage bearbeitet.
Beispiele
// Let us open our database
const request = window.indexedDB.open("toDoList", 4);
// This handler is called when a new version of the database
// is created, either when one has not been created before
// or when a new version number is submitted by calling
// window.indexedDB.open().
// This handler is only supported in recent browsers.
request.onupgradeneeded = (event) => {
const db = event.target.result;
db.onerror = (event) => {
note.appendChild(document.createElement("li")).textContent =
"Error loading database.";
};
// Create an objectStore for this database
const objectStore = db.createObjectStore("toDoList", {
keyPath: "taskTitle",
});
// define what data items the objectStore will contain
objectStore.createIndex("hours", "hours", { unique: false });
objectStore.createIndex("minutes", "minutes", { unique: false });
objectStore.createIndex("day", "day", { unique: false });
objectStore.createIndex("month", "month", { unique: false });
objectStore.createIndex("year", "year", { unique: false });
objectStore.createIndex("notified", "notified", { unique: false });
note.appendChild(document.createElement("li")).textContent =
"Object store created.";
};
Spezifikationen
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbdatabase-createobjectstore① |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Verwendung von IndexedDB
- Starten von Transaktionen:
IDBDatabase
- Verwenden von Transaktionen:
IDBTransaction
- Festlegen eines Schlüsselbereichs:
IDBKeyRange
- Abrufen und Ändern von Daten:
IDBObjectStore
- Verwendung von Cursoren:
IDBCursor
- Referenzbeispiel: To-do Notifications (Beispiel live ansehen).