引用函数
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 |