عملکردهای مرجع
نوع REFERENCE بهعنوان «اشارهگر» به اسناد دیگر در پایگاه داده (یا حتی پایگاههای داده دیگر) عمل میکند. توابع زیر امکان دستکاری این نوع را
درطول اجرای پُرسمان فراهم میکنند.
| نام | شرح |
COLLECTION_ID
|
شناسه مجموعه برگ را در مرجع دادهشده برمیگرداند |
DOCUMENT_ID
|
شناسه سند را در مرجع دادهشده برمیگرداند |
PARENT
|
مرجع والد را برمیگرداند |
REFERENCE_SLICE
|
زیرمجموعهای از بخشها را از مرجع دادهشده برمیگرداند |
COLLECTION_ID
نحو:
collection_id(ref: REFERENCE) -> STRING
شرح:
شناسه مجموعه برگ REFERENCE دادهشده را برمیگرداند.
نمونه:
ref |
collection_id(ref) |
|---|---|
users/user1 |
"users" |
users/user1/posts/post1 |
"posts" |
DOCUMENT_ID
نحو:
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
نحو:
reference_slice(ref: REFERENCE, offset: INT, length: INT) -> REFERENCE
شرح:
REFERENCE فهرستی از چندتاییهای (collection_id, document_id) است و این امکان را فراهم میکند که
نمایی از آن فهرست دریافت کنید، درست مثل array_slice(...).
REFERENCE جدیدی را برمیگرداند که زیرمجموعهای از بخشهای ref دادهشده است.
-
offset: نمایه شروع (مبتنی بر ۰) برش. اگر منفی باشد، یک افست از انتهای مرجع است. -
length: تعداد بخشهایی که باید در برش گنجانده شود.
نمونه:
ref |
offset |
length |
reference_slice(ref, offset, length) |
|---|---|---|---|
a/1/b/2/c/3 |
یک لیتر | 2L | b/2/c/3 |
a/1/b/2/c/3 |
۰ لیتر | 2L | a/1/b/2 |
a/1/b/2/c/3 |
-۲ لیتر | 2L | c/3 |