地圖函式

地圖函式

名稱 說明
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 值中所有鍵/值組合的陣列。

每個鍵/值組合都會以含有兩個項目的對應形式呈現,分別是 kv

範例:

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