Возвращает массив heap-объектов с заданной фильтрацией, сортировкой и ограничениями количества.
Если фильтрация и ограничения количества не заданы, то возвращаются все записи таблицы.
Максимальное количество записей, которое может вернуть этот метод - 1000. Используйте параметры
offset
иlimit
, чтобы получить больше записей несколькими запросами.
const rows = await table.findAll(ctx, options)
ctx app.Ctx *
Контекст запроса. Используется для внутренней реализации, а также позволяет выполнить запрос в нужной
транзакции.
options: { where, order, limit, offset }
Объект с необязательными параметрами запроса к таблице.
where: HeapFilter
Объект с условием фильтрации на специальном языке.
order: string | object | Array<string | object>
Правила сортировки записей.
Правило может быть одно (сортировка по одному полю) или несколько в виде массива, тогда сортировка происходит по нескольким полям в указанном порядке, как в SQL.
Тип поля учитывается для адекватной сортировки, т.к. числа сортируются как числа.
string
object
{ topField: { nestedField: 'desc' } }
asc (по умолчанию) по возрастанию.
То же, что asc nulls last
.
desc по убыванию.
То же, что desc nulls first
.
'asc nulls first' | 'asc nulls last' | 'desc nulls first' | 'desc nulls last'
дополнительно можно явно указать поведение сортировки записей с отсутствующим (null) значением поля сортировки.
limit: number
Определяет максимальное количество записей из результирующего набора после фильтрации и сортировки, которые
должны быть возвращены. Записи отсчитываются от начала результирующего списка. Полный аналог SQL LIMIT
.
ВАЖНО: максимальное значение этого параметра - 1000 записей, если указать больше - произойдёт ошибка,
если лимит не задан - по умолчанию будут возвращены первые 1000 записей.
offset: number
Определяет количество записей после фильтрации и сортировки, которые следует пропустить (удалить из
результирующего набора), прежде чем возвращать результат. Полный аналог SQL OFFSET
.
Promise<HeapObject[]>
Массив heap-объектов, соответствующий условиям фильтрации и сортировки.
const Tasks = Heap.Table('tasks', {
title: Heap.String(),
responsible: Heap.RefLink('employees'),
priority: Heap.Integer(),
})
const all = await Tasks.findAll(ctx)
const from11to20 = await Tasks.findAll(ctx, {
order: 'title',
limit: 10,
offset: 10,
})
const all = await Tasks.findAll(ctx, {
where: { priority: { $gt: 5 } },
order: ['responsible', { priority: 'desc' }],
})