دوال الخرائط

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

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