參照函式

參照函式

REFERENCE 類型會做為資料庫中其他文件 (甚至是其他資料庫) 的「指標」。您可以在查詢執行期間使用下列函式操控這類資料。

名稱 說明
COLLECTION_ID 傳回指定參照中的葉子集合 ID
DOCUMENT_ID 傳回指定參照中的文件 ID
PARENT 傳回父項參照
REFERENCE_SLICE 從指定參照傳回部分區隔

COLLECTION_ID

語法:

collection_id(ref: REFERENCE) -> STRING

說明:

傳回指定 REFERENCE 的葉子集合 ID。

範例:

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

DOCUMENT_ID

語法:

document_id(ref: REFERENCE) -> ANY

說明:

傳回指定 REFERENCE 的文件 ID。

範例:

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

PARENT

語法:

parent(ref: REFERENCE) -> REFERENCE

說明:

傳回指定參照的父項 REFERENCE,如果參照已是根參照,則傳回 NULL

範例:

ref parent(ref)
/ NULL
users/user1 /
users/user1/posts/post1 users/user1

REFERENCE_SLICE

語法:

reference_slice(ref: REFERENCE, offset: INT, length: INT) -> REFERENCE

說明:

REFERENCE(collection_id, document_id) 元組的清單,可讓您查看該清單,就像 array_slice(...) 一樣。

傳回新的 REFERENCE,這是指定 ref 的區段子集。

  • offset:切片的起始索引 (從 0 開始)。如果是負數,則為參照結尾的偏移量。
  • length:要在切片中納入的區段數量。

範例:

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