الدوال المرتبطة بالخرائط
| الاسم | الوصف |
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"}] |