Функции ссылок
Тип 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 |