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 feuille 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 la REFERENCE donnée.

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 de la REFERENCE donnée.

Exemples :

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

PARENT

Syntaxe :

parent(ref: REFERENCE) -> REFERENCE

Description:

Renvoie la REFERENCE parente 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:

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

Renvoie une nouvelle REFERENCE qui est un sous-ensemble des segments de la ref donnée.

  • offset : index de départ (basé sur 0) de la tranche. S'il est négatif, il s'agit d'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