Funciones de mapa

Funciones de mapa

Nombre Descripción
MAP Construye un valor de mapa a partir de una serie de pares clave-valor.
MAP_GET Devuelve el valor de un mapa para una clave especificada.
MAP_SET Devuelve una copia de un mapa con una serie de claves actualizadas.
MAP_REMOVE Devuelve una copia de un mapa con una serie de claves quitadas.
MAP_MERGE Combina una serie de mapas.
CURRENT_CONTEXT Devuelve el contexto actual como un mapa.
MAP_KEYS Devuelve un array de todas las claves de un mapa.
MAP_VALUES Devuelve un array de todos los valores de un mapa.
MAP_ENTRIES Devuelve un array de pares clave-valor de un mapa.

MAP

Sintaxis:

map(key: STRING, value: ANY, ...) -> MAP

Descripción:

Construye un mapa a partir de una serie de pares clave-valor.

MAP_GET

Sintaxis:

map_get(map: ANY, key: STRING) -> ANY

Descripción:

Devuelve el valor de un mapa para una clave especificada. Devuelve un valor ABSENT si el key no existe en el mapa o si el argumento map no es un MAP.

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

Sintaxis:

map_set(map: MAP, key: STRING, value: ANY, ...) -> MAP

Descripción:

Devuelve una copia del valor de map con su contenido actualizado por una serie de pares clave-valor.

Si el valor proporcionado se resuelve en un valor ausente, se quita la clave asociada del mapa.

Si el argumento map no es un MAP, devuelve un valor ausente.

MAP_REMOVE

Sintaxis:

map_remove(map: MAP, key: STRING...) -> MAP

Descripción:

Devuelve una copia del valor de map con una serie de claves quitadas.

MAP_MERGE

Sintaxis:

map_merge(maps: MAP...) -> MAP

Combina el contenido de 2 o más mapas. Si varios mapas tienen valores en conflicto, se usa el último valor.

CURRENT_CONTEXT

Sintaxis:

current_context() -> MAP

Devuelve un mapa que contiene todos los campos disponibles en el punto de ejecución actual.

MAP_KEYS

Sintaxis:

map_keys(map: MAP) -> ARRAY<STRING>

Descripción:

Devuelve un array que contiene todas las claves del valor map.

MAP_VALUES

Sintaxis:

map_values(map: MAP) -> ARRAY<ANY>

Descripción:

Devuelve un array que contiene todos los valores del valor map.

MAP_ENTRIES

Sintaxis:

map_entries(map: MAP) -> ARRAY<MAP>

Descripción:

Devuelve un array que contiene todos los pares clave-valor en el valor de map.

Cada par clave-valor tendrá la forma de un mapa con dos entradas, k y v.

Ejemplos:

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