Các chức năng của bản đồ

Hàm bản đồ

Tên Mô tả
MAP Tạo một giá trị bản đồ từ một chuỗi các cặp khoá-giá trị
MAP_GET Trả về giá trị trong một bản đồ dựa trên một khoá được chỉ định
MAP_SET Trả về bản sao của một bản đồ với một chuỗi các khoá đã cập nhật
MAP_REMOVE Trả về bản sao của một bản đồ với một chuỗi các khoá đã xoá
MAP_MERGE Hợp nhất một chuỗi các bản đồ.
CURRENT_CONTEXT Trả về ngữ cảnh hiện tại dưới dạng bản đồ.
MAP_KEYS Trả về một mảng gồm tất cả các khoá trong một bản đồ.
MAP_VALUES Trả về một mảng gồm tất cả các giá trị trong một bản đồ.
MAP_ENTRIES Trả về một mảng gồm các cặp khoá-giá trị của một bản đồ.

MAP

Cú pháp:

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

Nội dung mô tả:

Tạo một bản đồ từ một chuỗi các cặp khoá-giá trị.

MAP_GET

Cú pháp:

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

Nội dung mô tả:

Trả về giá trị trong một bản đồ dựa trên một khoá được chỉ định. Trả về giá trị ABSENT nếu key không tồn tại trong bản đồ hoặc nếu đối số map không phải là 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();

MAP_SET

Cú pháp:

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

Nội dung mô tả:

Trả về bản sao của giá trị map với nội dung được cập nhật theo một chuỗi các cặp khoá-giá trị.

Nếu giá trị đã cho phân giải thành một giá trị vắng mặt, thì khoá được liên kết sẽ bị xoá khỏi bản đồ.

Nếu đối số map không phải là MAP, thì sẽ trả về một giá trị vắng mặt.

MAP_REMOVE

Cú pháp:

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

Nội dung mô tả:

Trả về bản sao của giá trị map với một chuỗi các khoá đã xoá.

MAP_MERGE

Cú pháp:

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

Hợp nhất nội dung của 2 bản đồ trở lên. Nếu nhiều bản đồ có các giá trị xung đột, thì giá trị cuối cùng sẽ được sử dụng.

CURRENT_CONTEXT

Cú pháp:

current_context() -> MAP

Trả về một bản đồ bao gồm tất cả các trường có sẵn tại điểm thực thi hiện tại.

MAP_KEYS

Cú pháp:

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

Nội dung mô tả:

Trả về một mảng chứa tất cả các khoá của giá trị map.

MAP_VALUES

Cú pháp:

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

Nội dung mô tả:

Trả về một mảng chứa tất cả các giá trị của giá trị map.

MAP_ENTRIES

Cú pháp:

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

Nội dung mô tả:

Trả về một mảng chứa tất cả các cặp khoá-giá trị trong giá trị map.

Mỗi cặp khoá-giá trị sẽ có dạng một bản đồ gồm hai mục nhập, kv.

Ví dụ:

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