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' }],
})

❤️ Made with love on Chatium

ООО "Чатиум"

Информация о компании