Fonctions de référence

Fonctions de référence

Le type REFERENCE sert de "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 du 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 du 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 (sur base zéro) de la tranche. Si elle est négative, il s'agit d'un décalage par rapport à la fin de la référence.
  • length : nombre de segments à inclure dans le segment.

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