IDBIndex: getAll() method

The getAll() method of the IDBIndex interface retrieves all objects that are inside the index.

There is a performance cost associated with looking at the value property of a cursor, because the object is created lazily. To use a feature like getAll(), the browser has to create all the objects at once. If you are just interested in looking at each of the keys, for instance, it is more efficient to use a cursor. If you are trying to get an array of all the objects in an object store, though, you should use getAll().


getAll(query, count)


query Optional

A key or an IDBKeyRange identifying the records to retrieve. If this value is null or missing, the browser will use an unbound key range.

count Optional

The number of records to return. If this value exceeds the number of records in the query, the browser will only retrieve the queried records. If it is lower than 0 or greater than 2^32 - 1 a TypeError exception will be thrown.

Return value

An IDBRequest object on which subsequent events related to this operation are fired.

If the operation is successful, the value of the request's result property is an Array of the values of all records matching the given query, up to the value of count, if count was supplied.


This method may raise a DOMException of the following types:

TransactionInactiveError DOMException

Thrown if this IDBIndex's transaction is inactive.

InvalidStateError DOMException

Thrown if the IDBIndex has been deleted or removed.

A TypeError exception is thrown if the count parameter is not between 0 and 2^32 - 1 included.


const myIndex = objectStore.index("index");
const getAllRequest = myIndex.getAll();
getAllRequest.onsuccess = () => {


Indexed Database API 3.0
# ref-for-dom-idbindex-getall①

Browser compatibility

BCD tables only load in the browser

See also