Querying

Chain after .getAll():

Filtering (filter)

const notes = await db.from('notes').getAll().filter({ completed: true });
  • Method: filter(conditions)
  • Supported Operators: eq, neq, gt, gte, lt, lte, like, ilike, in, not (see list of operators)

Ordering (order)

const ordered = await db.from('notes').getAll().order('created_at', 'desc');
  • Method: order(field, direction?) (direction defaults to ‘asc’)

Pagination (limit, offset)

const paged = await db.from('notes').getAll().limit(10).offset(10);
  • Methods: limit(count), offset(count)

Note: All these must be chained after .getAll().

Supported operators

All used within filter():

OperatorDescriptionExample
eqEquality.filter({ status: { eq: "active" } })
neqNot equal.filter({ status: { neq: "deleted" } })
gtGreater than.filter({ priority: { gt: 3 } })
gteGreater than or equal.filter({ priority: { gte: 3 } })
ltLess than.filter({ priority: { lt: 3 } })
lteLess than or equal.filter({ priority: { lte: 3 } })
likePattern (case sensitive).filter({ title: { like: "%project%" } })
ilikePattern (case insensitive).filter({ title: { ilike: "%todo%" } })
inValue in set.filter({ tags: { in: ["work", "important"] } })
notNegation.filter({ tags: { not: { eq: "work" } } })

Limitations

  • Only one filterable condition per field per query (no compound filters across multiple fields)
  • Range filters (e.g., { gte: x, lte: y }) not supported
  • Method chaining order is flexible, but all must be chained after getAll()