HeapTableRepo.findAll
Возвращает массив 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)
Выборка c 11-й по 20-ю задач, отсортированных по заголовку
const from11to20 = await Tasks.findAll(ctx, {
order: 'title',
limit: 10,
offset: 10,
})
Выборка всех задач с приоритетом больше 5, отсортированных по идентификатору ответственного сотрудника (псевдо-группировка) и приоритету от большего к меньшему для каждого ответственного
const all = await Tasks.findAll(ctx, {
where: { priority: { $gt: 5 } },
order: ['responsible', { priority: 'desc' }],
})
