Funzioni di riferimento
Il tipo REFERENCE funge da "puntatore" ad altri documenti nel database (o anche ad altri database). Le seguenti funzioni consentono di manipolare questo tipo durante l'esecuzione della query.
| Nome | Descrizione |
COLLECTION_ID
|
Restituisce l'ID della raccolta di foglie nel riferimento specificato |
DOCUMENT_ID
|
Restituisce l'ID del documento nel riferimento specificato |
PARENT
|
Restituisce il riferimento padre |
REFERENCE_SLICE
|
Restituisce un sottoinsieme di segmenti dal riferimento specificato |
COLLECTION_ID
Sintassi:
collection_id(ref: REFERENCE) -> STRING
Descrizione:
Restituisce l'ID della raccolta di foglie del REFERENCE specificato.
Esempi:
ref |
collection_id(ref) |
|---|---|
users/user1 |
"users" |
users/user1/posts/post1 |
"posts" |
DOCUMENT_ID
Sintassi:
document_id(ref: REFERENCE) -> ANY
Descrizione:
Restituisce l'ID documento del REFERENCE specificato.
Esempi:
ref |
document_id(ref) |
|---|---|
users/user1 |
"user1" |
users/user1/posts/post1 |
"post1" |
GENITORE
Sintassi:
parent(ref: REFERENCE) -> REFERENCE
Descrizione:
Restituisce l'elemento principale REFERENCE del riferimento specificato o NULL se il riferimento è già un riferimento principale.
Esempi:
ref |
parent(ref) |
|---|---|
/ |
NULL |
users/user1 |
/ |
users/user1/posts/post1 |
users/user1 |
REFERENCE_SLICE
Sintassi:
reference_slice(ref: REFERENCE, offset: INT, length: INT) -> REFERENCE
Descrizione:
Un REFERENCE è un elenco di tuple (collection_id, document_id) e questo consente di ottenere una visualizzazione di quell'elenco, proprio come array_slice(...).
Restituisce un nuovo REFERENCE che è un sottoinsieme dei segmenti del ref specificato.
offset: l'indice iniziale (basato su 0) della sezione. Se è negativo, si tratta di un offset dalla fine del riferimento.length: il numero di segmenti da includere nella sezione.
Esempi:
ref |
offset |
length |
reference_slice(ref, offset, length) |
|---|---|---|---|
a/1/b/2/c/3 |
1 l | 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 |