Skip to content

Table.offset()

David Fahlander edited this page May 8, 2014 · 16 revisions

Returns a Collection (ordered by primary key), where the first N items in the obsject store are ignored.

Syntax

db.[table].offset(N)

Parameters

N: Number A positive (or zero) Number specifying how many records to ignore

Return Value

Collection

Remarks

This method is equivalent to:

db.[table].toCollection().offset(N)

or:

db.[table].orderBy(':id').offset(N)

Limitations

In combination with the or() method, the offset() method makes no sense since the sort order of the result will be undefined (or() is working on multuple different indexes in parallell). Instead, use sortBy() and then slice the resulting array from requested offset.

Performance Notes

If executed on simple queries, the native IDBCursor.advance() method will be used (fast execution). If advanced queries are used, the implementation have to execute a query to iterate all items and ignore N items using a JS filter.

Examples where offset() will be fast

  • db.[table].offset(N)
  • db.[table].where(index).equals(value).offset(N)
  • db.[table].where(index).above(value).offset(N)
  • db.[table].where(index).below(value).offset(N)
  • db.[table].where(index).between(value).offset(N)
  • db.[table].where(index).startsWith(value).offset(N)

Examples where offset() will have to iterate the collection:

  • db.[table].where(index).equalsIgnoreCase(value).offset(N)
  • db.[table].where(index).startsWithIgnoreCase(value).offset(N)
  • db.[table].where(index).anyOf(valueArray).offset(N)
  • db.[table].where(index).above(value).and(filterFunction).offset(N)

See Also

Clone this wiki locally