פונקציות של מפות

פונקציות של מפות

שם תיאור
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

מיזוג התוכן של 2 מפות או יותר. אם יש כמה מפות עם ערכים סותרים, המערכת תשתמש בערך האחרון.

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"}]