地圖函式
| 名稱 | 說明 |
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
說明:
傳回對應中指定索引鍵的值。如果對應中沒有 key,或 map 引數不是 MAP,則傳回 ABSENT 值。
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() )
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"}] |