Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die map() Diagrammfunktion berechnet einen Ausdruck für jeden Rand oder inneren Knoten entlang eines Pfads mit variabler Länge und gibt ein dynamisches Array aller Ergebnisse zurück.
Hinweis
Diese Funktion wird mit den Operatoren "graph-match " und " graph-shortest"-Pfade verwendet.
Syntax
map(*edge*, *expression*)'
map(inner_nodes(
Rand),Ausdruck)
Die Parameter
| Name | Typ | Erforderlich | BESCHREIBUNG |
|---|---|---|---|
| Rand | string |
✔️ | Ein Rand mit variabler Länge vom Operator für Diagramm-Übereinstimmungen oder vom Operatormuster "Graph-shortest-paths" . Weitere Informationen finden Sie unter Graph-Musternotation. |
| Ausdruck | string |
✔️ | Die Berechnung, die über die Eigenschaften des Rands oder des inneren Knotens ausgeführt werden soll, wenn inner_nodes verwendet wird, am Rand der variablen Länge. Auf eine Eigenschaft wird direkt mithilfe des Eigenschaftennamens verwiesen. Der Ausdruck wird für jeden Rand oder inneren Knoten am Rand der variablen Länge ausgewertet. |
Rückkehr
Ein dynamisches Array, in dem:
- Die Arraylänge entspricht der Anzahl der Kanten oder inneren Knoten, wenn inner_nodes verwendet wird, am Rand der variablen Länge.
- Das Array ist für Pfade der Länge Null leer.
- Jedes Element im Array entspricht den Ergebnissen des Anwendens des Ausdrucks auf jeden Rand oder inneren Knoten am Rand der Variablenlänge.
Beispiele
Die Beispiele in diesem Abschnitt zeigen, wie Sie die Syntax verwenden, um Ihnen den Einstieg zu erleichtern.
Finden Sie den Bahnhof und die Linie für die kürzeste Strecke zwischen zwei Stationen
Das folgende Beispiel zeigt, wie sie den graph-shortest-paths Betreiber verwenden können, um den kürzesten Weg zwischen den "South-West" Stationen "North" in einem Verkehrsnetz zu finden. Er fügt den Pfad mithilfe der map() Funktion Zeileninformationen hinzu. Die Abfrage erstellt ein Diagramm aus den connections Daten, wobei Pfade bis zu fünf Verbindungen lang berücksichtigt werden.
let connections = datatable(from_station:string, to_station:string, line:string)
[
"Central", "North", "red",
"North", "Central", "red",
"Central", "South", "red",
"South", "Central", "red",
"South", "South-West", "red",
"South-West", "South", "red",
"South-West", "West", "red",
"West", "South-West", "red",
"Central", "East", "blue",
"East", "Central", "blue",
"Central", "West", "blue",
"West", "Central", "blue",
];
connections
| make-graph from_station --> to_station with_node_id=station
| graph-shortest-paths (start)-[connections*1..5]->(destination)
where start.station == "South-West" and destination.station == "North"
project from = start.station, path = map(connections, strcat(to_station, " (", line, ")")), to = destination.station
Ausgabe
| Von | Pfad | zu |
|---|---|---|
| Sud-Ouest | [ "Süd (rot)", "Zentral (rot)", "Nord (Rot)" ] |
Nord |
Liste der Haltestellen mit Wi-Fi in allen Strecken zwischen zwei Stationen abrufen
Das folgende Beispiel zeigt, wie sie den graph-match Betreiber mit den all() Funktionen inner_nodes verwenden, um alle Haltestellen mit Wi-Fi entlang aller Routen zwischen zwei Stationen in einem Verkehrsnetz zu finden.
let connections = datatable(from_station:string, to_station:string, line:string)
[
"Central", "North", "red",
"North", "Central", "red",
"Central", "South", "red",
"South", "Central", "red",
"South", "South-West", "red",
"South-West", "South", "red",
"South-West", "West", "red",
"West", "South-West", "red",
"Central", "East", "blue",
"East", "Central", "blue",
"Central", "West", "blue",
"West", "Central", "blue",
];
let stations = datatable(station:string, wifi:bool)
[
"Central", true,
"North", false,
"South", false,
"South-West", true,
"West", true,
"East", false
];
connections
| make-graph from_station --> to_station with stations on station
| graph-match cycles=none (start)-[connections*1..5]->(destination)
where start.station == "South-West" and destination.station == "East"
project stopovers = strcat_array(map(inner_nodes(connections), station), "->"),
stopovers_with_wifi = set_intersect(map(inner_nodes(connections), station), map(inner_nodes(connections), iff(wifi, station, "")))
Ausgabe
| Zwischenstopps | stopovers_with_wifi |
|---|---|
| West-Zentral> | [ "West", "Central"] |
| Süd-Zentral> | [ "Zentral"] |