IDBDatabase: createObjectStore()-Methode
Hinweis: Dieses Feature ist verfügbar in Web Workers.
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, mit dem Sie wichtige optionale Eigenschaften definieren können. Diese Eigenschaft können Sie verwenden, um einzelne Objekte im Speicher eindeutig zu identifizieren. Da es sich um einen Bezeichner handelt, sollte dieser 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 Objekt-Speichers. Beachten Sie, dass es möglich ist, einen Objekt-Speicher mit einem leeren Namen zu erstellen.
options
Optional-
Ein Optionsobjekt, dessen Attribute optionale Parameter der Methode sind. Es umfasst die folgenden Eigenschaften:
keyPath
Optional-
Der Schlüsselpfad, der vom neuen Objekt-Speicher verwendet wird. Wenn er leer ist oder nicht angegeben wird, wird der Objekt-Speicher ohne Schlüsselpfad erstellt und verwendet out-of-line keys. Sie können auch ein Array als
keyPath
übergeben. autoIncrement
Optional-
Wenn
true
, hat der Objekt-Speicher einen Schlüsselgenerator. Standardwert istfalse
.
Rückgabewert
Ein neuer IDBObjectStore
.
Ausnahmen
Diese Methode kann ein DOMException
mit einem name
von einem der folgenden Typen auslösen:
InvalidStateError
DOMException
-
Wird ausgelöst, wenn die Methode nicht aus einer
versionchange
-Transaktionsrückruf aufgerufen wurde. 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). In Firefox vor Version 41 wurde in diesem Fall ebenfalls ein
InvalidStateError
ausgelöst, was irreführend war; dies wurde nun behoben (siehe Firefox-Fehler 1176165). ConstraintError
DOMException
-
Wird ausgelöst, wenn ein Objekt-Speicher mit dem angegebenen Namen (basierend auf einem Groß-/Kleinschreibvergleich) 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, das einen leeren String enthält.
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
- Verwendung von Transaktionen:
IDBTransaction
- Festlegen eines Bereichs von Schlüsseln:
IDBKeyRange
- Abrufen und Ändern Ihrer Daten:
IDBObjectStore
- Verwendung von Cursoren:
IDBCursor
- Referenzbeispiel: To-do Notifications (Beispiel live ansehen).