توابع مرجع

توابع مرجع

نوع REFERENCE به عنوان یک "اشاره‌گر" به سایر اسناد موجود در پایگاه داده (یا حتی سایر پایگاه‌های داده) عمل می‌کند. توابع زیر امکان دستکاری این نوع را در حین اجرای پرس‌وجو فراهم می‌کنند.

نام توضیحات
COLLECTION_ID شناسه مجموعه برگ را در مرجع داده شده برمی‌گرداند.
DOCUMENT_ID شناسه سند را در مرجع داده شده برمی‌گرداند.
PARENT مرجع والد را برمی‌گرداند
REFERENCE_SLICE زیرمجموعه‌ای از بخش‌های مرجع داده شده را برمی‌گرداند

شناسه مجموعه

نحو:

collection_id(ref: REFERENCE) -> STRING

شرح:

شناسه مجموعه برگ‌های REFERENCE داده شده را برمی‌گرداند.

مثال‌ها:

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

شناسه سند

نحو:

document_id(ref: REFERENCE) -> ANY

شرح:

شناسه سند مربوط به REFERENCE داده شده را برمی‌گرداند.

مثال‌ها:

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(ref: REFERENCE, offset: INT, length: INT) -> REFERENCE

شرح:

یک 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 ۱ لیتر ۲ لیتر b/2/c/3
a/1/b/2/c/3 0 لیتر ۲ لیتر a/1/b/2
a/1/b/2/c/3 -2 لیتر ۲ لیتر c/3