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 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