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 any() Diagrammfunktion wertet eine Bedingung für jeden Rand oder inneren Knoten entlang eines Pfads mit variabler Länge aus.
Hinweis
Diese Funktion wird mit den Operatoren "graph-match " und " graph-shortest"-Pfade verwendet.
Syntax
any(
Rand,Zustand)
any(inner_nodes(
Rand),Zustand)
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. |
| Bedingung | string |
✔️ | Ein boolescher Ausdruck, der aus Eigenschaften des Rands oder inneren Knotens besteht, wenn inner_nodes verwendet wird, im 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ückgaben
Gibt zurücktrue, wenn die Bedingung für mindestens einen true oder inneren Knoten ausgewertet wird, wenn inner_nodes verwendet wird, im Rand der variablen Länge. Andernfalls wird falsezurückgegeben.
Bei Pfaden der Länge null wird die Bedingung ausgewertet.false
Beispiele
Im folgenden Beispiel werden die Locations Tabellen und Routes Daten verwendet, um ein Diagramm zu erstellen, das Pfade von einem Quellspeicherort zu einem Zielspeicherort durch ein route. Sie verwendet any() Funktion, um Pfade zu finden, die die Transportmethode mindestens einmal verwenden "Train" . Er gibt den Namen des Quellstandorts, den Zielstandortnamen und die Transportmethoden entlang der Route zurück.
// Locations table (nodes)
let Locations = datatable(LocationName: string, LocationType: string) [
"New York", "City",
"San Francisco", "City",
"Chicago", "City",
"Los Angeles", "City",
"Seattle", "Warehouse"
];
// Routes table (edges)
let Routes = datatable(OriginLocationID: string, DestinationLocationID: string, TransportMode: string) [
"New York", "San Francisco", "Truck",
"New York", "Chicago", "Train",
"San Francisco", "Los Angeles", "Truck",
"Chicago", "Seattle", "Train",
"Los Angeles", "New York", "Truck",
"Seattle", "San Francisco", "Train"
];
Routes
| make-graph OriginLocationID --> DestinationLocationID with Locations on LocationName
| graph-match (src)-[route*1..2]->(dest)
where any(route, TransportMode == "Train")
project src.LocationName,
dest.LocationName,
route_TransportModes = map(route, TransportMode)
Ausgabe
| src_LocationName | dest_LocationName | route_TransportModes |
|---|---|---|
| Seattle | San Francisco | ["Train"] |
| Chicago | Seattle | ["Train"] |
| New York | Chicago | ["Train"] |
| Seattle | Los Angeles | [ "Train", "Truck" ] |
| Chicago | San Francisco | [ "Train", "Train" ] |
| New York | Seattle | [ "Train", "Train" ] |
| Los Angeles | Chicago | [ "Truck", "Train" ] |
Das folgende Beispiel zeigt, wie sie den graph-shortest-paths Betreiber mit den any() Funktionen inner_nodes verwenden können, um einen Weg zwischen zwei Stationen in einem Verkehrsnetz zu finden. Die Abfrage erstellt ein Diagramm aus den connections Daten und findet den kürzesten Weg vom "South-West" Bahnhof zum Bahnhof, der mindestens eine Station durchläuft, an der "North" Wi-Fi verfügbar ist.
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*2..5]->(destination)
where start.station == "South-West" and
destination.station == "North" and
any(inner_nodes(connections), wifi)
project from = start.station,
stations = strcat_array(map(inner_nodes(connections), station), "->"),
to = destination.station
Ausgabe
| Von | Bahnhöfe | Bis |
|---|---|---|
| Sud-Ouest | Süd-Zentral> | Nord |
| Sud-Ouest | West-Zentral> | Nord |