참조 함수
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(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(...)와 마찬가지로 목록을 볼 수 있습니다.
지정된 ref의 세그먼트 하위 집합인 새 REFERENCE를 반환합니다.
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 |