دوال الخرائط

الدوال المرتبطة بالخرائط

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

MAP

البنية:

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

Description:

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

MAP_GET

البنية:

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

Description:

تعرض هذه الدالة القيمة في خريطة معيّنة باستخدام مفتاح محدّد. تعرض هذه الدالة قيمة 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();

MAP_SET

البنية:

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

Description:

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

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

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

MAP_REMOVE

البنية:

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

Description:

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

MAP_MERGE

البنية:

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

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

CURRENT_CONTEXT

البنية:

current_context() -> MAP

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

MAP_KEYS

البنية:

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

Description:

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

MAP_VALUES

البنية:

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

Description:

تعرض هذه الدالة صفيفًا يتضمّن جميع قيم قيمة map.

MAP_ENTRIES

البنية:

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

Description:

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

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

Examples:

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