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