IDBDatabase: createObjectStore() Methode
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.
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 nimmt den Namen des Speichers sowie ein Parameterobjekt entgegen, das es Ihnen ermöglicht, wichtige optionale Eigenschaften zu definieren. Sie können die Eigenschaft verwenden, um einzelne Objekte im Speicher eindeutig zu identifizieren. Da die Eigenschaft ein Identifikator ist, sollte sie für jedes Objekt einzigartig sein, und jedes Objekt sollte diese Eigenschaft haben.
Diese Methode kann nur innerhalb einer versionchange
Transaktion aufgerufen werden.
Syntax
createObjectStore(name)
createObjectStore(name, options)
Parameter
name
-
Der Name des neuen zu erstellenden Objektspeichers. Beachten Sie, dass es möglich ist, einen Objektspeicher mit einem leeren Namen zu erstellen.
options
Optional-
Ein Optionsobjekt, dessen Attribute optionale Parameter für die Methode sind. Es enthält die folgenden Eigenschaften:
keyPath
Optional-
Der Schlüsselpfad, der vom neuen Objektspeicher verwendet werden soll. Wenn leer oder nicht angegeben, wird der Objektspeicher ohne Schlüsselpfad erstellt und verwendet außerhalb liegende Schlüssel. Sie können auch ein Array als
keyPath
übergeben. autoIncrement
Optional-
Wenn
true
, hat der Objektspeicher einen Schlüsselerzeuger. Standardmäßig istfalse
.
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 Objektspeicher mit dem angegebenen Namen (basierend auf einem groß- und 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 Schlüsselpfad enthält. TransactionInactiveError
DOMException
-
Wird ausgelöst, wenn eine Anfrage an eine Quell-Datenbank gestellt wird, die nicht existiert (zum Beispiel, wenn die Datenbank gelöscht oder entfernt wurde), oder wenn die zugehörige Upgrade-Transaktion abgeschlossen oder dabei ist, eine Anfrage zu verarbeiten.
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
Siehe auch
- Verwenden von IndexedDB
- Transaktionen starten:
IDBDatabase
- Verwendung von Transaktionen:
IDBTransaction
- Festlegen eines Bereichs von Schlüsseln:
IDBKeyRange
- Abrufen und Ändern Ihrer Daten:
IDBObjectStore
- Verwendung von Cursoren:
IDBCursor
- Referenzbeispiel: To-do-Benachrichtigungen (Beispiel live ansehen).