Kartenfunktionen

Zuordnungsfunktionen

Name Beschreibung
MAP Erstellt einen Zuordnungswert aus einer Reihe von Schlüssel/Wert-Paaren.
MAP_GET Gibt den Wert in einer Zuordnung für einen angegebenen Schlüssel zurück.
MAP_SET Gibt eine Kopie einer Zuordnung mit einer Reihe aktualisierter Schlüssel zurück.
MAP_REMOVE Gibt eine Kopie einer Zuordnung zurück, aus der eine Reihe von Schlüsseln entfernt wurde.
MAP_MERGE Führt eine Reihe von Zuordnungen zusammen.
CURRENT_CONTEXT Gibt den aktuellen Kontext als Zuordnung zurück.
MAP_KEYS Gibt ein Array aller Schlüssel in einer Zuordnung zurück.
MAP_VALUES Gibt ein Array aller Werte in einer Zuordnung zurück.
MAP_ENTRIES Gibt ein Array von Schlüssel/Wert-Paaren einer Zuordnung zurück.

MAP

Syntax :

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

Beschreibung:

Erstellt eine Zuordnung aus einer Reihe von Schlüssel/Wert-Paaren.

MAP_GET

Syntax :

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

Beschreibung:

Gibt den Wert in einer Zuordnung für einen angegebenen Schlüssel zurück. Gibt einen ABSENT-Wert zurück, wenn der key in der Zuordnung nicht vorhanden ist oder wenn das Argument map kein MAP ist.

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();

MAP_SET

Syntax :

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

Beschreibung:

Gibt eine Kopie des map-Werts zurück, dessen Inhalt durch eine Reihe von Schlüssel/Wert-Paaren aktualisiert wurde.

Wenn der angegebene Wert in einen nicht vorhandenen Wert aufgelöst wird, wird der zugehörige Schlüssel aus der Zuordnung entfernt.

Wenn das map Argument kein MAP ist, wird ein nicht vorhandener Wert zurückgegeben.

MAP_REMOVE

Syntax :

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

Beschreibung:

Gibt eine Kopie des map-Werts zurück, aus der eine Reihe von Schlüsseln entfernt wurde.

MAP_MERGE

Syntax :

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

Führt den Inhalt von zwei oder mehr Zuordnungen zusammen. Wenn mehrere Zuordnungen widersprüchliche Werte haben, wird der letzte Wert verwendet.

CURRENT_CONTEXT

Syntax :

current_context() -> MAP

Gibt eine Zuordnung zurück, die aus allen verfügbaren Feldern am aktuellen Ausführungspunkt besteht.

MAP_KEYS

Syntax :

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

Beschreibung:

Gibt ein Array mit allen Schlüsseln des map Werts zurück.

MAP_VALUES

Syntax :

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

Beschreibung:

Gibt ein Array mit allen Werten des map-Werts zurück.

MAP_ENTRIES

Syntax :

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

Beschreibung:

Gibt ein Array mit allen Schlüssel/Wert-Paaren im map-Wert zurück.

Jedes Schlüssel/Wert-Paar hat die Form einer Zuordnung mit zwei Einträgen, k und v.

Beispiele :

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