ฟังก์ชันแมป
| ชื่อ | คำอธิบาย |
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"}] |