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 getAllKeysRequest = myIndex.getAllKeys(); getAllKeysRequest.onsuccess = function() { console.log(getAllKeysRequest.result); }
Specification
Specification | Status | Comment |
---|---|---|
Indexed Database API 2.0 The definition of 'getAll()' in that specification. |
Editor's Draft | Initial definition. |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari (WebKit) |
---|---|---|---|---|---|
Basic support | 48 | 44.0 (44.0) [1] | No support | 35 | No support |
Indexed Database 2.0 | 58 | ? | ? | 45 | ? |
Feature | Android Webview | Chrome for Android | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | 48 | 48 | 44.0 (44.0) [1] | No support | 35 | No support |
Indexed Database 2.0 | 58 | 58 | ? | ? | 45 | ? |
[1] This feature was available since Firefox 24, but behind the dom.indexedDB.experimental
pref, off by default
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.)