Funkcje odwołania
Typ REFERENCE działa jak „wskaźnik” do innych dokumentów w bazie danych (lub nawet w innych bazach danych). Te funkcje umożliwiają manipulowanie tym typem podczas wykonywania zapytania.
| Nazwa | Opis |
COLLECTION_ID
|
Zwraca identyfikator kolekcji końcowej w podanym odwołaniu. |
DOCUMENT_ID
|
Zwraca identyfikator dokumentu w danym odwołaniu. |
PARENT
|
Zwraca odwołanie do elementu nadrzędnego. |
REFERENCE_SLICE
|
Zwraca podzbiór segmentów z podanego odniesienia. |
COLLECTION_ID
Składnia:
collection_id(ref: REFERENCE) -> STRING
Opis:
Zwraca identyfikator kolekcji liści podanego 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 podanego 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 nadrzędny REFERENCE danego odwołania lub 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 (collection_id, document_id) krotek, która umożliwia wyświetlanie tej listy, podobnie jak array_slice(...).
Zwraca nowy obiekt REFERENCE, który jest podzbiorem segmentów danego obiektu ref.
offset: indeks początkowy (od 0) wycinka. Jeśli jest ujemna, jest to przesunięcie od końca odniesienia.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 |