Funzioni di riferimento

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