دوال الخرائط

وظائف الخريطة

الاسم الوصف
MAP تنشئ هذه الدالة قيمة خريطة من سلسلة من أزواج المفاتيح والقيم
MAP_GET تعرض هذه الدالة القيمة في خريطة معينة باستخدام مفتاح محدّد
MAP_SET تعرض نسخة من خريطة تتضمّن سلسلة من المفاتيح المعدَّلة
MAP_REMOVE تعرض نسخة من خريطة تمت إزالة سلسلة من المفاتيح منها
MAP_MERGE تدمج هذه الدالة سلسلة من الخرائط معًا.
CURRENT_CONTEXT تعرض هذه الدالة السياق الحالي كخريطة.
MAP_KEYS تعرض هذه الدالة مصفوفة تتضمّن جميع المفاتيح في خريطة.
MAP_VALUES تعرض هذه الدالة صفيفًا يتضمّن جميع القيم في خريطة.
MAP_ENTRIES تعرض هذه الدالة صفيفًا من أزواج المفاتيح والقيم لخريطة.

MAP

البنية:

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

الوصف:

تنشئ هذه الدالة خريطة من سلسلة من أزواج المفاتيح والقيم.

MAP_GET

البنية:

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

الوصف:

تعرض هذه الدالة القيمة في خريطة معينة بالاستناد إلى مفتاح محدّد. تعرِض قيمة ABSENT إذا لم يكن key متوفّرًا في الخريطة، أو إذا لم تكن الوسيطة map من النوع MAP.

Node.js
const result = await db.pipeline()
  .collection("books")
  .select(
    field("awards").mapGet("pulitzer").as("hasPulitzerAward")
  )
  .execute();

Web

const result = await execute(db.pipeline()
  .collection("books")
  .select(
    field("awards").mapGet("pulitzer").as("hasPulitzerAward")
  )
);
Swift
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();
Python
from google.cloud.firestore_v1.pipeline_expressions import Field

result = (
    client.pipeline()
    .collection("books")
    .select(Field.of("awards").map_get("pulitzer").as_("hasPulitzerAward"))
    .execute()
)
Java
Pipeline.Snapshot result =
    firestore
        .pipeline()
        .collection("books")
        .select(mapGet(field("awards"), "pulitzer").as("hasPulitzerAward"))
        .execute()
        .get();
متابعة
snapshot := client.Pipeline().
	Collection("books").
	Select(firestore.Fields(
		firestore.MapGet(firestore.FieldOf("awards"), "pulitzer").As("hasPulitzerAward"),
	)).
	Execute(ctx)

MAP_SET

البنية:

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

الوصف:

تعرض نسخة من قيمة map تم تعديل محتواها من خلال سلسلة من أزواج المفاتيح والقيم.

إذا تم حلّ القيمة المحدّدة إلى قيمة غير متوفّرة، تتم إزالة المفتاح المرتبط من الخريطة.

إذا لم تكن الوسيطة map MAP، يتم عرض قيمة غير متوفّرة.

MAP_REMOVE

البنية:

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

الوصف:

تعرض نسخة من قيمة map مع إزالة سلسلة من المفاتيح.

MAP_MERGE

البنية:

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

تدمج هذه الدالة محتوى خريطتَين أو أكثر. إذا كانت هناك خرائط متعدّدة تتضمّن قيمًا متعارضة، يتم استخدام القيمة الأخيرة.

CURRENT_CONTEXT

البنية:

current_context() -> MAP

تعرض هذه الدالة خريطة تتألف من جميع الحقول المتاحة في نقطة التنفيذ الحالية.

MAP_KEYS

البنية:

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

الوصف:

تعرض هذه الدالة صفيفًا يحتوي على جميع مفاتيح قيمة map.

MAP_VALUES

البنية:

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

الوصف:

تعرض هذه السمة صفيفًا يحتوي على جميع قيم map.

MAP_ENTRIES

البنية:

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

الوصف:

تعرِض هذه الدالة صفيفًا يحتوي على جميع أزواج المفاتيح والقيم في قيمة map.

سيكون كل زوج مفتاح وقيمة على شكل خريطة تتضمّن إدخالَين، k وv.

أمثلة:

map map_entries(map)
{} []
{‎"foo" : 2L‎} [{"k": "foo", "v" : 2L}]
{‎"foo" : "bar", "bar" : "foo"‎} [{"k": "foo", "v" : "bar" }, {"k" : "bar", "v": "foo"}]