對應函式
| 名稱 | 說明 |
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 值。
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
合併 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"}] |