참조 함수

참조 함수

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