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 |