Kolumna lustrzana
Kolumna lustrzana wyświetla wartości z innej tablicy za pośrednictwem połączonego elementu. Dzięki temu możesz wyświetlać dane z połączonych tablic bez ich powielania i łatwo sprawdzać istotne informacje z wielu tablic w jednym widoku.
Za pomocą API możesz odczytywać i tworzyć kolumny lustrzane. Ich wartości nie mogą być bezpośrednio aktualizowane ani czyszczone - odzwierciedlają wartość kolumny źródłowej na połączonej tablicy. Filtrowanie wyświetlanych w nich treści nie jest obsługiwane.
| Typ kolumny | Typ implementacji | Obsługiwane operacje |
|---|---|---|
mirror |
MirrorValue |
|
Zapytania
Kolumny lustrzane możesz odpytywać za pomocą pola column_values w items, używając wbudowanego fragmentu dla MirrorValue.
query {
items(ids: [1234567890, 9876543210]) {
name
column_values {
... on MirrorValue {
id
display_value
mirrored_items {
linked_item {
id
name
}
mirrored_value {
... on StatusValue {
label
index
}
... on TextValue {
text
}
}
}
}
}
}
}
const query = `
query ($itemIds: [ID!]) {
items(ids: $itemIds) {
name
column_values {
... on MirrorValue {
id
display_value
mirrored_items {
linked_item {
id
name
}
mirrored_value {
... on StatusValue {
label
}
... on TextValue {
text
}
}
}
}
}
}
}
`;
const variables = { itemIds: [1234567890, 9876543210] };
const response = await mondayApiClient.request(query, variables);
Użyj display_value, aby szybko uzyskać tekstowe podsumowanie wyświetlanych treści. Użyj mirrored_items wraz z wbudowanymi fragmentami pola mirrored_value, aby uzyskać pełną, typowaną wartość z kolumny źródłowej.
Pola
Możesz użyć następujących pól, aby określić, jakie informacje zwróci implementacja MirrorValue.
| Pole | Opis |
|---|---|
column Column! |
Kolumna, do której należy wartość. |
display_value String! |
Wyświetlana treść w postaci ciągu tekstowego, w którym wartości są oddzielone przecinkami. |
id ID! |
Unikatowy identyfikator kolumny. |
mirrored_items [MirroredItem!]! |
Połączone elementy i ich wyświetlane wartości. Zobacz MirroredItem poniżej. |
text String |
Zwraca null. Zamiast tego użyj display_value. |
type ColumnType! |
Typ kolumny. |
value JSON |
Zwraca null. Zamiast tego użyj mirrored_items. |
MirroredItem
Każdy MirroredItem reprezentuje jeden połączony element i jego wyświetlaną wartość.
| Pole | Opis |
|---|---|
linked_board Board! |
Tablica, do której należy połączony element. |
linked_board_id ID! |
Unikatowy identyfikator połączonej tablicy. |
linked_item Item! |
Połączony element. |
mirrored_value MirroredValue |
Wartość z kolumny źródłowej, zwracana jako typ unii obejmujący wszystkie typy wartości kolumn. Użyj wbudowanych fragmentów, aby uzyskać dostęp do pól właściwych dla danego typu. |
MirroredValue
MirroredValue to typ unii, który może przyjmować dowolny typ wartości kolumny (np. StatusValue, TextValue czy NumbersValue). Użyj wbudowanych fragmentów, aby uzyskać dostęp do pól właściwych dla danego typu:
mirrored_value {
... on StatusValue {
label
index
}
... on NumbersValue {
number
}
... on DateValue {
date
time
}
}
Przykładowa odpowiedź
{
"data": {
"items": [
{
"name": "Task A",
"column_values": [
{
"id": "mirror",
"display_value": "Done, Working on it",
"mirrored_items": [
{
"linked_item": {
"id": "9876543210",
"name": "Linked Task 1"
},
"mirrored_value": {
"label": "Done",
"index": 1
}
},
{
"linked_item": {
"id": "9876543211",
"name": "Linked Task 2"
},
"mirrored_value": {
"label": "Working on it",
"index": 0
}
}
]
}
]
}
]
}
}
Mutacje
Tworzenie
Wymagany zakres uprawnień: boards:write
Możesz utworzyć kolumnę lustrzaną za pomocą ogólnej mutacji create_column, ustawiając column_type: mirror. Argument defaults określa konfigurację kolumny lustrzanej, w tym kolumnę Połącz tablice (Connect boards), która ma być użyta, oraz kolumny z połączonej tablicy, które mają być wyświetlane.
mutation {
create_column(
board_id: 1234567890
title: "Linked Status"
column_type: mirror
defaults: "{\"settings\": {\"relation_column\": {\"board_relation\": true}, \"displayed_linked_columns\": [{\"board_id\": \"9876543210\", \"column_ids\": [\"status\"]}]}}"
) {
id
title
type
settings
}
}
Pola konfiguracji
Obiekt JSON defaults przyjmuje następujące ustawienia:
| Pole | Typ | Opis |
|---|---|---|
relation_column |
Object |
Przypisuje wartość true do identyfikatora kolumny Połącz tablice. Określa, która kolumna relacji między tablicami udostępnia połączone elementy. Np. {"board_relation": true}. |
displayed_linked_columns |
Array |
Tablica obiektów określających, które kolumny z każdej połączonej tablicy mają być wyświetlane. Każdy obiekt zawiera board_id (ciąg znaków) i column_ids (tablicę ciągów znaków z identyfikatorami kolumn). |
sumType |
String |
Typ agregacji dla lustrzanych kolumn statusu. Wartości: "doneOnly" (wyświetla procent ukończonych elementów) lub "allStatuses" (wyświetla liczbę elementów o każdym statusie). |
calcType |
String |
Typ obliczeń dla lustrzanych kolumn daty. Wartości: "earliestToLatest", "earliest" lub "latest". |
Odczytywanie konfiguracji kolumny
Aby pobrać ustawienia kolumny lustrzanej, odpytaj jej pole settings.
Pole settings_str jest przestarzałe od wersji API 2025-10. Zamiast niego użyj typowanego obiektu settings, który zwraca uporządkowane dane JSON, a nie ciąg znaków zakodowany w formacie JSON.
query {
boards(ids: 1234567890) {
columns(ids: ["mirror"]) {
id
title
settings
}
}
}
Struktura odpowiedzi settings
Pole settings zwraca typowany obiekt JSON z następującymi kluczami:
| Klucz | Typ | Opis |
|---|---|---|
relation_column |
Object |
Przypisuje wartość true do identyfikatora kolumny Połącz tablice. |
displayed_linked_columns |
Array |
Tablica obiektów zawierających board_id i column_ids, które określają wyświetlane kolumny. |
sumType |
String |
Typ agregacji dla lustrzanych kolumn statusu, jeśli został skonfigurowany. |
calcType |
String |
Typ obliczeń dla lustrzanych kolumn daty, jeśli został skonfigurowany. |
Przykładowa odpowiedź settings
{
"relation_column": {
"board_relation": true
},
"displayed_linked_columns": [
{
"board_id": "9876543210",
"column_ids": ["status", "date"]
}
]
}
Pobieranie schematu typu kolumny
Możesz pobrać programowo schemat JSON ustawień kolumny lustrzanej za pomocą zapytania get_column_type_schema. Zwraca ono strukturę, reguły walidacji i dostępne właściwości konfiguracji kolumny.
query {
get_column_type_schema(
type: mirror
)
}
{
"data": {
"get_column_type_schema": {
"schema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"settings": {
"type": "object",
"description": "Column specific settings",
"properties": {
"relation_column": {
"type": "object",
"description": "Map of relation-column ID to a boolean flag",
"additionalProperties": {
"type": "boolean"
}
},
"displayed_linked_columns": {
"type": "array",
"description": "Array of entries mapping a linked board to the columns to display",
"items": {
"type": "object",
"properties": {
"board_id": { "type": "string" },
"column_ids": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["board_id", "column_ids"],
"additionalProperties": false
}
},
"sumType": {
"type": "string",
"description": "Aggregation type for status summaries",
"enum": ["doneOnly", "allStatuses"]
},
"calcType": {
"type": "string",
"description": "Calculation type for linked date aggregation",
"enum": ["earliestToLatest", "earliest", "latest"]
}
},
"additionalProperties": false
}
}
}
}
}
}
Odpowiedź zawiera nazwy właściwości, ich typy, ograniczenia (np. maksymalną długość i dozwolone wartości) oraz opisy poszczególnych ustawień. Możesz użyć tych informacji do walidacji ustawień kolumn, dynamicznego generowania interfejsów lub przekazywania kontekstu agentom AI. Dowiedz się więcej o formacie odpowiedzi schematu.