Справочные функции

Опорные функции

Тип REFERENCE выступает в роли «указателя» на другие документы в базе данных (или даже на другие базы данных). Следующие функции позволяют управлять этим типом во время выполнения запроса.

Имя Описание
COLLECTION_ID Возвращает идентификатор коллекции конечных элементов в указанной ссылке.
DOCUMENT_ID Возвращает идентификатор документа в указанной ссылке.
PARENT Возвращает ссылку на родительский объект.
REFERENCE_SLICE Возвращает подмножество сегментов из заданной ссылки.

ИДЕНТИФИКАТОР КОЛЛЕКЦИИ

Синтаксис:

collection_id(ref: REFERENCE) -> STRING

Описание:

Возвращает идентификатор коллекции листьев для заданной REFERENCE .

Примеры:

ref collection_id(ref)
users/user1 "users"
users/user1/posts/post1 "posts"

DOCUMENT_ID

Синтаксис:

document_id(ref: REFERENCE) -> ANY

Описание:

Возвращает идентификатор документа по указанной REFERENCE .

Примеры:

ref document_id(ref)
users/user1 "user1"
users/user1/posts/post1 "post1"

РОДИТЕЛЬ

Синтаксис:

parent(ref: REFERENCE) -> REFERENCE

Описание:

Возвращает родительскую REFERENCE для заданной ссылки или NULL , если ссылка уже является корневой.

Примеры:

ref parent(ref)
/ NULL
users/user1 /
users/user1/posts/post1 users/user1

РЕФЕРЕНЦОВЫЙ СЛОТ

Синтаксис:

reference_slice(ref: REFERENCE, offset: INT, length: INT) -> REFERENCE

Описание:

Объект REFERENCE представляет собой список кортежей (collection_id, document_id) , и он позволяет получить представление этого списка, подобно array_slice(...) .

Возвращает новый REFERENCE , являющийся подмножеством сегментов заданного объекта ref .

  • offset : Начальный индекс (от 0) среза. Если значение отрицательное, это смещение от конца опорной точки.
  • length : количество сегментов, которые следует включить в фрагмент.

Примеры:

ref offset length reference_slice(ref, offset, length)
a/1/b/2/c/3 1 л 2 л b/2/c/3
a/1/b/2/c/3 0 л 2 л a/1/b/2
a/1/b/2/c/3 -2 л 2 л c/3