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()
.
Syntax
var getAllKeysRequest = IDBIndex.getAll(); var getAllKeysRequest = IDBIndex.getAll(query); var getAllKeysRequest = IDBIndex.getAll(query, count);
Parameters
- 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 records to return. If this value exceeds the number of records in the query, the browser will only retrieve the first item. If it is lower than
0
or greater than232-1
aTypeError
exception will be thrown.
Return value
An IDBRequest
object on which subsequent events related to this operation are fired.
Exceptions
This method may raise a DOMException
of the following types:
Exception | Description |
---|---|
TransactionInactiveError |
This IDBIndex 's transaction is inactive. |
InvalidStateError |
The IDBIndex has been deleted or removed. |
A TypeError
exception is thrown if the count
parameter is not between 0
and 232-1
included.
Example
var myIndex = objectStore.index('index'); var getAllRequest = myIndex.getAll(); getAllRequest.onsuccess = function() { console.log(getAllRequest.result); }
Specification
Specification | Status | Comment |
---|---|---|
Indexed Database API Draft The definition of 'getAll()' in that specification. |
Recommendation | Initial definition. |
Browser compatibility
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
getAll | Chrome Full support 48 | Edge Full support ≤18 | Firefox Full support 44 | IE No support No | Opera Full support 35 | Safari Full support 10.1 | WebView Android Full support 48 | Chrome Android Full support 48 | Firefox Android Full support 44 | Opera Android Full support 35 | Safari iOS Full support 10.3 | Samsung Internet Android Full support 5.0 |
Legend
- Full support
- Full support
- No support
- No support
See also
- Using IndexedDB
- Starting transactions:
IDBDatabase
- Using transactions:
IDBTransaction
- Setting a range of keys:
IDBKeyRange
- Retrieving and making changes to your data:
IDBObjectStore
- Using cursors:
IDBCursor
- Reference example: To-do Notifications (view example live.)