Hàm tham chiếu

Hàm tham chiếu

Loại REFERENCE đóng vai trò là "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 tệp đối chiếu đã cho
DOCUMENT_ID Trả về mã nhận dạng của tài liệu trong tệp đối chiếu đã cho
PARENT Trả về tệp đối chiếu gốc
REFERENCE_SLICE Trả về một tập hợp con các đoạn trong tệp đối 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"

CHA MẸ

Cú pháp:

parent(ref: REFERENCE) -> REFERENCE

Nội dung mô tả:

Trả về REFERENCE mẹ của tệp đối chiếu đã cho hoặc NULL nếu tệp đối chiếu đã là tệp đối 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à danh sách các bộ dữ liệu (collection_id, document_id) và 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 của 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ì đây là độ lệch so với điểm cuối của 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 1 l 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