IDBKeyRange extension type
The IDBKeyRange
interface of the
IndexedDB API
represents a continuous interval over some data type that is used for keys.
Records can be retrieved from IDBObjectStore and IDBIndex objects using
keys or a range of keys. You can limit the range using lower and upper
bounds. For example, you can iterate over all values of a key in the value
range A–Z.
A key range can be a single value or a range with upper and lower bounds or endpoints. If the key range has both upper and lower bounds, then it is bounded; if it has no bounds, it is unbounded. A bounded key range can either be open (the endpoints are excluded) or closed (the endpoints are included). To retrieve all keys within a certain range, you can use the following code constructs:
Range | Code |
---|---|
All keys ≥ x | IDBKeyRange.lowerBound(x) |
All keys > x | IDBKeyRange.lowerBound(x, true) |
All keys ≤ y | IDBKeyRange.upperBound(y) |
All keys < y | IDBKeyRange.upperBound(y, true) |
All keys ≥ x && ≤ y | IDBKeyRange.bound(x, y) |
All keys > x &&< y | IDBKeyRange.bound(x, y, true, true) |
All keys > x && ≤ y | IDBKeyRange.bound(x, y, true, false) |
All keys ≥ x &&< y | IDBKeyRange.bound(x, y, false, true) |
The key = z | IDBKeyRange.only(z) |
A key is in a key range if the following conditions are true:
-
The lower value of the key range is one of the following:
undefined
- Less than key value
- Equal to key value if
lowerOpen
isfalse
.
-
The upper value of the key range is one of the following:
undefined
- Greater than key value
- Equal to key value if
upperOpen
isfalse
.
Properties
Methods
-
includes(
JSAny? key) → bool -
The
includes()
method of the IDBKeyRange interface returns a boolean indicating whether a specified key is inside the key range. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
bound(
JSAny? lower, JSAny? upper, [bool lowerOpen, bool upperOpen]) → IDBKeyRange -
lowerBound(
JSAny? lower, [bool open]) → IDBKeyRange -
only(
JSAny? value) → IDBKeyRange -
upperBound(
JSAny? upper, [bool open]) → IDBKeyRange