引用函数

引用函数

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