Подробнее работа поиска описана в Search.

Type parameters

  • F: ApplicationFilterClosure<T>

Hierarchy

Methods

all

  • Метод возвращает страницу результатов поиска с количеством результатов Search.size, начиная с Search.from.

    По умолчанию размер выборки ограничен 10 записями. Если нужно выбрать больше элементов, используйте метод Search.size.

    const searchResults = await Application.search()
        .where((f, g) => g.and (
            f.__deletedAt.eq(null),
            f.service.link(Context.data.service)
        ))
        .all();
    

    Returns Promise<ReplacementItem[]>

count

  • count(): Promise<number>
  • Метод позволяет получить количество элементов в выборке (игнорирует Search.from и Search.size).

    const searchResults = await Application.search()
        .where((f, g) => g.and (
            f.__deletedAt.eq(null),
            f.service.link(Context.data.service)
        ))
        .count();
    

    Returns Promise<number>

first

  • Метод возвращает первый элемент выборки.

    const searchResults = await Application.search()
        .where((f, g) => g.and (
            f.__deletedAt.eq(null),
            f.service.link(Context.data.service)
        ))
        .first();
    

    Returns Promise<ReplacementItem | undefined>

from

  • from(n: number): this
  • Метод Search.from позволяет пропустить заданное количество элементов.

    Parameters

    • n: number

      Количество элементов, которое необходимо пропустить.

      Например, при работе с большим количеством элементов приложения можно разбить поиск на порции и динамически определять начало выборки.

      Context.data.from += 100;
      const searchResults = await Application.search()
          .from(Context.data.from)
          .where((f, g) => g.and (
              f.__deletedAt.eq(null),
              f.service.link(Context.data.service)
          ))
          .all();
      

    Returns this

size

  • size(n: number): this
  • Метод позволяет задать ограничение выборки элементов.

    Parameters

    • n: number

      Размер выборки (по умолчанию 10, максимум 10000).

      const searchResults = await Application.search()
          .size(500)
          .where((f, g) => g.and (
              f.__deletedAt.eq(null),
              f.service.link(Context.data.service)
          ))
          .all();
      

    Returns this

sort

  • sort(field: keyof ReplacementData, ascending?: undefined | false | true): this
  • Метод позволяет выполнить сортировку результатов поиска.

    Если необходимо отсортировать результаты по нескольким параметрам, можно вызывать метод несколько раз последовательно.

    Parameters

    • field: keyof ReplacementData

      Код поля, по которому выполняется сортировка.

    • Optional ascending: undefined | false | true

      Если значение параметра — true, сортировка выполняется по возрастанию, если false — по убыванию.

      const searchResults = await Application.search()
          .size(500)
          .sort("__createdAt", true)
          .where((f, g) => g.and (
              f.__deletedAt.eq(null),
              f.service.link(Context.data.service)
          ))
          .all();
      

    Returns this

where

  • where(fc: F): this
  • where(eql: EqlQuery, params?: EqlParams): this
  • Метод позволяет задать фильтрацию элементов коллекции.

    Parameters

    • fc: F

      Фильтры для поиска.

      const searchResults = await Application.search()
          .where((f, g) => g.and (
              f.__deletedAt.eq(null),
              f.service.link(Context.data.service)
          ))
          .all();
      

    Returns this

  • Метод Search.where позволяет задать фильтрацию элементов коллекции.

    Parameters

    • eql: EqlQuery

      EQL-выражение для поиска.

      const searchResults = await Application.search()
      .where(`[__id] = '66358eab-54cf-4591-86ba-34b83739c13f'`)
      .first();
      

      EQL-выражение с параметрами для поиска:

      const searchResults = await Application.search()
      .where(`[__id] = @p1 or [__name] = @p2`, {p1: '66358eab-54cf-4591-86ba-34b83739c13f', p2: 'app1'})
      .first();
      
    • Optional params: EqlParams

    Returns this