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 |