The get()
method of the IDBObjectStore
interface returns an IDBRequest
object, and, in a separate thread, returns the object store selected by the specified key. This is for retrieving specific records from an object store.
If a value is successfully found, then a structured clone of it is created and set as the result
of the request object.
Note: This method produces the same result for: a) a record that doesn't exist in the database and b) a record that has an undefined value. To tell these situations apart, call the openCursor()
method with the same key. That method provides a cursor if the record exists, and no cursor if it does not.
An IDBRequest
object on which subsequent events related to this operation are fired.
This method may raise a DOMException
of one of the following types:
-
TransactionInactiveError
DOMException
-
Thrown if this IDBObjectStore
's transaction is inactive.
-
DataError
DOMException
-
Thrown if key or key range provided contains an invalid key.
-
InvalidStateError
DOMException
-
Thrown if the IDBObjectStore
has been deleted or removed.
In the following code snippet, we open a read/write transaction on our database and get one specific record from object store using get()
— a sample record with the key "Walk dog". Once this data object is retrieved, you could then update it using normal JavaScript, then put it back into the database using a IDBObjectStore.put
operation. For a full working example, see our To-do Notifications app (view example live.)
var DBOpenRequest = window.indexedDB.open("toDoList", 4);
DBOpenRequest.onsuccess = function(event) {
note.innerHTML += '<li>Database initialized.</li>';
db = DBOpenRequest.result;
getData();
};
function getData() {
var transaction = db.transaction(["toDoList"], "readwrite");
transaction.oncomplete = function(event) {
note.innerHTML += '<li>Transaction completed.</li>';
};
transaction.onerror = function(event) {
note.innerHTML += '<li>Transaction not opened due to error: ' + transaction.error + '</li>';
};
var objectStore = transaction.objectStore("toDoList");
var objectStoreRequest = objectStore.get("Walk dog");
objectStoreRequest.onsuccess = function(event) {
note.innerHTML += '<li>Request successful.</li>';
var myRecord = objectStoreRequest.result;
};
};