Функции ссылок

Функции ссылок

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

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

COLLECTION_ID

Синтаксис:

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

Синтаксис:

parent(ref: REFERENCE) -> REFERENCE

Описание.

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

Примеры

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

REFERENCE_SLICE

Синтаксис:

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 л 2L b/2/c/3
a/1/b/2/c/3 0 л 2L a/1/b/2
a/1/b/2/c/3 -2L 2L c/3