دوال الخرائط

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

الاسم الوصف
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"}]