Referenzfunktionen

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 Abfrageausführung bearbeitet werden.

Name Beschreibung
COLLECTION_ID Gibt die ID der Blatt-Collection in der angegebenen Referenz 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 Blatt-Collection-ID der 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 der angegebenen REFERENCE zurück.

Beispiele:

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

PARENT

Syntax:

parent(ref: REFERENCE) -> REFERENCE

Beschreibung:

Gibt die übergeordnete REFERENCE der angegebenen Referenz oder NULL zurück, wenn die Referenz bereits eine Stammreferenz 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:

Eine REFERENCE ist eine Liste von (collection_id, document_id)-Tupeln. Mit dieser Funktion können Sie eine Ansicht dieser Liste abrufen, genau wie mit array_slice(...).

Gibt eine neue REFERENCE zurück, die eine Teilmenge der Segmente der angegebenen ref ist.

  • offset: Der Startindex (0-basiert) des Slice. Wenn er negativ ist, ist er ein 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