Fonctions de référence

Fonctions de référence

Le type REFERENCE agit comme un "pointeur" vers d'autres documents de la base de données (ou même d'autres bases de données). Les fonctions suivantes permettent de manipuler ce type lors de l'exécution de la requête.

Nom Description
COLLECTION_ID Renvoie l'ID de la collection de feuilles dans la référence donnée.
DOCUMENT_ID Renvoie l'ID du document dans la référence donnée.
PARENT Renvoie la référence parente.
REFERENCE_SLICE Renvoie un sous-ensemble de segments à partir de la référence donnée.

COLLECTION_ID

Syntaxe :

collection_id(ref: REFERENCE) -> STRING

Description :

Renvoie l'ID de la collection feuille de l'REFERENCE donné.

Exemples :

ref collection_id(ref)
users/user1 "users"
users/user1/posts/post1 "posts"

DOCUMENT_ID

Syntaxe :

document_id(ref: REFERENCE) -> ANY

Description :

Renvoie l'ID du document REFERENCE donné.

Exemples :

ref document_id(ref)
users/user1 "user1"
users/user1/posts/post1 "post1"

PARENT

Syntaxe :

parent(ref: REFERENCE) -> REFERENCE

Description :

Renvoie le REFERENCE parent de la référence donnée, ou NULL si la référence est déjà une référence racine.

Exemples :

ref parent(ref)
/ NULL
users/user1 /
users/user1/posts/post1 users/user1

REFERENCE_SLICE

Syntaxe :

reference_slice(ref: REFERENCE, offset: INT, length: INT) -> REFERENCE

Description :

Un REFERENCE est une liste de tuples (collection_id, document_id), ce qui permet d'obtenir une vue de cette liste, tout comme array_slice(...).

Renvoie un nouveau REFERENCE qui est un sous-ensemble des segments du ref donné.

  • offset : index de départ (basé sur zéro) de la tranche. Si elle est négative, elle correspond à un décalage par rapport à la fin de la référence.
  • length : nombre de segments à inclure dans la tranche.

Exemples :

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