Referenzfunktionen
Der Typ REFERENCE fungiert als „Zeiger“ auf andere Dokumente in der Datenbank (oder sogar auf andere Datenbanken). Mit den folgenden Funktionen kann dieser Typ während der Ausführung von Abfragen bearbeitet werden.
| Name | Beschreibung |
COLLECTION_ID
|
Gibt die ID der Blatt-Sammlung im angegebenen Verweis zurück. |
DOCUMENT_ID
|
Gibt die ID des Dokuments in der angegebenen Referenz zurück. |
PARENT
|
Gibt die übergeordnete Referenz zurück |
REFERENCE_SLICE
|
Gibt eine Teilmenge von Segmenten aus der angegebenen Referenz zurück. |
COLLECTION_ID
Syntax:
collection_id(ref: REFERENCE) -> STRING
Beschreibung:
Gibt die ID der Blattknotensammlung des angegebenen REFERENCE zurück.
Beispiele:
ref |
collection_id(ref) |
|---|---|
users/user1 |
"users" |
users/user1/posts/post1 |
"posts" |
DOCUMENT_ID
Syntax:
document_id(ref: REFERENCE) -> ANY
Beschreibung:
Gibt die Dokument-ID des angegebenen REFERENCE zurück.
Beispiele:
ref |
document_id(ref) |
|---|---|
users/user1 |
"user1" |
users/user1/posts/post1 |
"post1" |
ELTERNTEIL
Syntax:
parent(ref: REFERENCE) -> REFERENCE
Beschreibung:
Gibt das übergeordnete REFERENCE des angegebenen Verweises oder NULL zurück, wenn der Verweis bereits ein Stammverweis ist.
Beispiele:
ref |
parent(ref) |
|---|---|
/ |
NULL |
users/user1 |
/ |
users/user1/posts/post1 |
users/user1 |
REFERENCE_SLICE
Syntax:
reference_slice(ref: REFERENCE, offset: INT, length: INT) -> REFERENCE
Beschreibung:
Ein REFERENCE ist eine Liste von (collection_id, document_id)-Tupeln. Damit kann eine Ansicht dieser Liste abgerufen werden, genau wie bei array_slice(...).
Gibt ein neues REFERENCE zurück, das eine Teilmenge der Segmente des angegebenen ref ist.
offset: Der Startindex (0-basiert) des Ausschnitts. Wenn der Wert negativ ist, handelt es sich um einen Offset vom Ende der Referenz.length: Die Anzahl der Segmente, die im Slice enthalten sein sollen.
Beispiele:
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 |