Referenzfunktionen

Referenzfunktionen

Der Typ REFERENCE fungiert als „Zeiger“ auf andere Dokumente in der Datenbank (oder sogar in anderen Datenbanken). Mit den folgenden Funktionen kann dieser Typ während der Abfrageausführung 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 Blatt-Sammlungs-ID 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"

PARENT

Syntax:

parent(ref: REFERENCE) -> REFERENCE

Beschreibung:

Gibt das ü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:

Ein REFERENCE ist eine Liste von (collection_id, document_id)-Tupeln. Damit können Sie eine Ansicht dieser Liste abrufen, 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 Segments. Wenn der Wert negativ ist, handelt es sich um einen Offset vom Ende der Referenz.
  • length: Die Anzahl der Segmente, die in das Slice aufgenommen werden 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