ฟังก์ชันแผนที่

ฟังก์ชันแมป

ชื่อ คำอธิบาย
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();

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

คู่คีย์-ค่าแต่ละคู่จะอยู่ในรูปแบบของแมปที่มี 2 รายการ ได้แก่ k และ v

ตัวอย่าง:

map map_entries(map)
{} []
{"foo" : 2L} [{"k": "foo", "v" : 2L}]
{"foo" : "bar", "bar" : "foo"} [{"k": "foo", "v" : "bar" }, {"k" : "bar", "v": "foo"}]