توابع نقشه

توابع نقشه

نام توضیحات
MAP یک مقدار نگاشت (map value) را از مجموعه‌ای از جفت‌های کلید-مقدار می‌سازد.
MAP_GET مقدار موجود در یک نقشه را با توجه به یک کلید مشخص شده برمی‌گرداند.
MAP_SET یک کپی از نقشه را با مجموعه‌ای از کلیدهای به‌روزرسانی‌شده برمی‌گرداند
MAP_REMOVE یک کپی از نقشه را با حذف یک سری کلید برمی‌گرداند.
MAP_MERGE یک سری نقشه را با هم ادغام می‌کند.
CURRENT_CONTEXT زمینه فعلی را به عنوان یک نقشه برمی‌گرداند.
MAP_KEYS آرایه‌ای از تمام کلیدهای موجود در یک نقشه را برمی‌گرداند.
MAP_VALUES آرایه‌ای از تمام مقادیر موجود در یک نقشه را برمی‌گرداند.
MAP_ENTRIES آرایه‌ای از جفت‌های کلید-مقدار از یک نقشه را برمی‌گرداند.

نقشه

نحو:

map(key: STRING, value: ANY, ...) -> MAP

شرح:

یک نقشه از مجموعه‌ای از جفت‌های کلید-مقدار می‌سازد.

دریافت نقشه

نحو:

map_get(map: ANY, key: STRING) -> ANY

شرح:

مقدار موجود در یک نقشه را با توجه به یک کلید مشخص شده برمی‌گرداند. اگر key در نقشه وجود نداشته باشد، یا اگر آرگومان map یک MAP نباشد، مقدار ABSENT را برمی‌گرداند.

Web

const result = await execute(db.pipeline()
  .collection("books")
  .select(
    field("awards").mapGet("pulitzer").as("hasPulitzerAward")
  )
);
سویفت
let result = try await db.pipeline()
  .collection("books")
  .select([
    Field("awards").mapGet("pulitzer").as("hasPulitzerAward")
  ])
  .execute()

Kotlin

val result = db.pipeline()
    .collection("books")
    .select(
        field("awards").mapGet("pulitzer").alias("hasPulitzerAward")
    )
    .execute()

Java

Task<Pipeline.Snapshot> result = db.pipeline()
    .collection("books")
    .select(
        field("awards").mapGet("pulitzer").alias("hasPulitzerAward")
    )
    .execute();
پایتون
from google.cloud.firestore_v1.pipeline_expressions import Field

result = (
    client.pipeline()
    .collection("books")
    .select(Field.of("awards").map_get("pulitzer").as_("hasPulitzerAward"))
    .execute()
)

مجموعه نقشه

نحو:

map_set(map: MAP, key: STRING, value: ANY, ...) -> MAP

شرح:

یک کپی از مقدار map را به همراه محتویات آن که توسط یک سری جفت‌های کلید-مقدار به‌روزرسانی شده‌اند، برمی‌گرداند.

اگر نتیجه‌ی حاصل، مقداری ناموجود باشد، کلید مرتبط از نقشه حذف می‌شود.

اگر آرگومان map یک MAP نباشد، مقداری را برمی‌گرداند که وجود ندارد.

حذف نقشه

نحو:

map_remove(map: MAP, key: STRING...) -> MAP

شرح:

یک کپی از مقدار map را با حذف یک سری از کلیدها برمی‌گرداند.

ادغام نقشه

نحو:

map_merge(maps: MAP...) -> MAP

محتویات ۲ یا چند نقشه را ادغام می‌کند. اگر چندین نقشه مقادیر متناقضی داشته باشند، آخرین مقدار استفاده می‌شود.

زمینه فعلی

نحو:

current_context() -> MAP

یک نقشه شامل تمام فیلدهای موجود در نقطه فعلی اجرا را برمی‌گرداند.

کلیدهای نقشه

نحو:

map_keys(map: MAP) -> ARRAY<STRING>

شرح:

آرایه‌ای شامل تمام کلیدهای مقدار map را برمی‌گرداند.

مقادیر نقشه

نحو:

map_values(map: MAP) -> ARRAY<ANY>

شرح:

آرایه‌ای شامل تمام مقادیر مقدار map را برمی‌گرداند.

ورودی‌های نقشه

نحو:

map_entries(map: MAP) -> ARRAY<MAP>

شرح:

آرایه‌ای شامل تمام جفت‌های کلید-مقدار در مقدار map را برمی‌گرداند.

هر جفت کلید-مقدار به شکل یک نگاشت با دو ورودی k و v خواهد بود.

مثال‌ها:

map map_entries(map)
{} []
{"غذا" : 2L} [{"k": "foo", "v" : 2L}]
{"foo" : "bar", "bar" : "foo"} [{"k": "foo"، "v" : "bar" }، {"k": "bar"، "v": "foo"}]