Funkcje odwołań
Typ REFERENCE działa jak „wskaźnik” do innych dokumentów w bazie danych (a nawet w innych bazach danych). Te funkcje umożliwiają manipulowanie tym typem podczas wykonywania zapytań.
| Nazwa | Opis |
COLLECTION_ID
|
Zwraca identyfikator kolekcji liści w danym odwołaniu. |
DOCUMENT_ID
|
Zwraca identyfikator dokumentu w danym odwołaniu. |
PARENT
|
Zwraca odwołanie nadrzędne. |
REFERENCE_SLICE
|
Zwraca podzbiór segmentów z danego odwołania. |
COLLECTION_ID
Składnia:
collection_id(ref: REFERENCE) -> STRING
Opis:
Zwraca identyfikator kolekcji liści danego elementu REFERENCE.
Przykłady:
ref |
collection_id(ref) |
|---|---|
users/user1 |
"users" |
users/user1/posts/post1 |
"posts" |
DOCUMENT_ID
Składnia:
document_id(ref: REFERENCE) -> ANY
Opis:
Zwraca identyfikator dokumentu danego elementu REFERENCE.
Przykłady:
ref |
document_id(ref) |
|---|---|
users/user1 |
"user1" |
users/user1/posts/post1 |
"post1" |
PARENT
Składnia:
parent(ref: REFERENCE) -> REFERENCE
Opis:
Zwraca element REFERENCE nadrzędny w stosunku do danego odwołania lub wartość NULL, jeśli odwołanie jest już odwołaniem głównym.
Przykłady:
ref |
parent(ref) |
|---|---|
/ |
NULL |
users/user1 |
/ |
users/user1/posts/post1 |
users/user1 |
REFERENCE_SLICE
Składnia:
reference_slice(ref: REFERENCE, offset: INT, length: INT) -> REFERENCE
Opis:
REFERENCE to lista krotek (collection_id, document_id), która umożliwia wyświetlanie tej listy, podobnie jak array_slice(...).
Zwraca nowy element REFERENCE, który jest podzbiorem segmentów danego elementu ref.
offset: indeks początkowy (liczony od 0) wycinka. Jeśli jest ujemny, jest to przesunięcie od końca odwołania.length: liczba segmentów do uwzględnienia w wycinku.
Przykłady:
ref |
offset |
length |
reference_slice(ref, offset, length) |
|---|---|---|---|
a/1/b/2/c/3 |
1L | 2L | b/2/c/3 |
a/1/b/2/c/3 |
0L | 2L | a/1/b/2 |
a/1/b/2/c/3 |
-2L | 2L | c/3 |