توابع مرجع
نوع 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 |