Hàm tham chiếu

Hàm tham chiếu

Loại REFERENCE hoạt động như một "con trỏ" đến các tài liệu khác trong cơ sở dữ liệu (hoặc thậm chí là các cơ sở dữ liệu khác). Các hàm sau đây cho phép thao tác với loại này trong quá trình thực thi truy vấn.

Tên Mô tả
COLLECTION_ID Trả về mã nhận dạng của tập hợp lá trong giá trị tham chiếu đã cho
DOCUMENT_ID Trả về mã nhận dạng của tài liệu trong giá trị tham chiếu đã cho
PARENT Trả về tham chiếu gốc
REFERENCE_SLICE Trả về một tập hợp con các phân đoạn từ giá trị tham chiếu đã cho

COLLECTION_ID

Cú pháp:

collection_id(ref: REFERENCE) -> STRING

Nội dung mô tả:

Trả về mã nhận dạng tập hợp lá của REFERENCE đã cho.

Ví dụ:

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

DOCUMENT_ID

Cú pháp:

document_id(ref: REFERENCE) -> ANY

Nội dung mô tả:

Trả về mã tài liệu của REFERENCE đã cho.

Ví dụ:

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

PARENT

Cú pháp:

parent(ref: REFERENCE) -> REFERENCE

Nội dung mô tả:

Trả về REFERENCE mẹ của giá trị tham chiếu đã cho hoặc NULL nếu ref đã là một giá trị tham chiếu gốc.

Ví dụ:

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

REFERENCE_SLICE

Cú pháp:

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

Nội dung mô tả:

REFERENCE là một danh sách các bộ (collection_id, document_id) và điều này cho phép xem danh sách đó, giống như array_slice(...).

Trả về một REFERENCE mới là một tập hợp con của các phân đoạn trong ref đã cho.

  • offset: Chỉ mục bắt đầu (bắt đầu từ 0) của lát cắt. Nếu là số âm, thì đó là độ lệch so với cuối tệp đối chiếu.
  • length: Số lượng phân đoạn cần đưa vào lát cắt.

Ví dụ:

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