映射函数
| 名称 | 说明 |
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"}] |