files/en-us/web/api/idbcursor/direction/index.md
{{ APIRef("IndexedDB") }} {{AvailableInWorkers}}
The direction read-only property of the
{{domxref("IDBCursor")}} interface is a string that returns the
direction of traversal of the cursor (set using
{{domxref("IDBObjectStore.openCursor")}} for example). See the Value
section below for possible values.
A string indicating the direction in which the cursor is traversing the data. Possible values are:
next
nextunique
prev
prevunique
In this simple fragment we create a transaction, retrieve an object store, then use a cursor to iterate through all the records in the object store. Within each iteration we log the direction of the cursor.
[!NOTE] We can't change the direction of travel of the cursor using the
directionproperty, as it is read-only. We specify the direction of travel using the 2nd argument of {{domxref("IDBObjectStore.openCursor")}}.
The cursor does not require us to select the data based on a key; we can just grab all
of it. Also note that in each iteration of the loop, you can grab data from the current
record under the cursor object using cursor.value.foo. For a complete
working example, see our IDBCursor example (View the example live).
function backwards() {
list.textContent = "";
const transaction = db.transaction(["rushAlbumList"], "readonly");
const objectStore = transaction.objectStore("rushAlbumList");
objectStore.openCursor(null, "prev").onsuccess = (event) => {
const cursor = event.target.result;
if (cursor) {
const listItem = document.createElement("li");
listItem.textContent = `${cursor.value.albumTitle}, ${cursor.value.year}`;
list.appendChild(listItem);
console.log(cursor.direction);
cursor.continue();
} else {
console.log("Entries displayed backwards.");
}
};
}
{{Specifications}}
{{Compat}}