Функции карт

Функции карт

Имя Описание
MAP Создает значение карты из серии пар "ключ-значение"
MAP_GET Возвращает значение на карте по заданному ключу.
MAP_SET Возвращает копию карты с набором обновленных ключей.
MAP_REMOVE Возвращает копию карты с удаленной серией ключей.
MAP_MERGE Объединяет несколько карт.
CURRENT_CONTEXT Возвращает текущий контекст в виде карты.
MAP_KEYS Возвращает массив всех ключей в карте.
MAP_VALUES Возвращает массив всех значений на карте.
MAP_ENTRIES Возвращает массив пар "ключ-значение" карты.

КАРТА

Синтаксис:

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

Описание.

Создает карту из набора пар "ключ-значение".

MAP_GET

Синтаксис:

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

Описание.

Возвращает значение на карте по указанному ключу. Возвращает значение ABSENT, если key не существует в структуре или если аргумент map не является MAP.

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();
Проложить маршрут
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

Объединяет содержимое двух или более карт. Если несколько карт содержат конфликтующие значения, используется последнее значение.

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"}]