Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Funkcja grafu any() ocenia warunek dla każdej krawędzi lub węzła wewnętrznego wzdłuż ścieżki o zmiennej długości.
Uwaga
Ta funkcja jest używana z dopasowania grafu i najkrótszych ścieżek grafów operatorów.
Składnia
any(brzegowej
any(inner_nodes(brzegowej
Parametry
| Nazwa | Typ | Wymagane | Opis |
|---|---|---|---|
| krawędzi | string |
✔️ | Krawędź zmiennej długości od operatora dopasowania grafu lub wzorca operatorów grafów najkrótszych ścieżek. Aby uzyskać więcej informacji, zobacz notacja wzorców Graph. |
| warunku | string |
✔️ | Wyrażenie logiczne składające się z właściwości krawędzi lub węzła wewnętrznego, gdy jest używana inner_nodes, w krawędzi zmiennej długości. Właściwość jest odwołuje się bezpośrednio przy użyciu nazwy właściwości. Wyrażenie jest obliczane dla każdej krawędzi lub węzła wewnętrznego w zmiennej długości krawędzi. |
Zwraca
Zwraca true wartość , jeśli warunek ma wartość true dla co najmniej jednej krawędzi lub węzła wewnętrznego, gdy jest używana inner_nodes , na krawędzi zmiennej długości. W przeciwnym razie zwraca false.
W przypadku ścieżek o zerowej długości warunek oblicza wartość false.
Przykłady
W poniższym przykładzie Locations użyto tabel danych i Routes do utworzenia grafu, który znajduje ścieżki z lokalizacji źródłowej do lokalizacji docelowej za pośrednictwem routeelementu . Używa any() funkcji do znajdowania ścieżek, które używają "Train" metody transportu co najmniej raz. Zwraca nazwę lokalizacji źródłowej, nazwę lokalizacji docelowej i metody transportu wzdłuż trasy.
// 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)
Wynik
| src_LocationName | dest_LocationName | route_TransportModes |
|---|---|---|
| Seattle | San Francisco | ["Train"] |
| Chicago | Seattle | ["Train"] |
| Nowy Jork | Chicago | ["Train"] |
| Seattle | Los Angeles | [ "Train", "Ciężarówka" ] |
| Chicago | San Francisco | [ "Train", "Trenowanie" ] |
| Nowy Jork | Seattle | [ "Train", "Trenowanie" ] |
| Los Angeles | Chicago | [ "Ciężarówka", "Trenowanie" ] |
W poniższym przykładzie pokazano, jak używać operatora graph-shortest-paths z funkcjami any() i inner_nodes, aby znaleźć ścieżkę między dwiema stacjami w sieci transportowej. Zapytanie tworzy graf z danych i znajduje najkrótszą ścieżkę ze connections"South-West" stacji do "North" stacji, przechodząc przez co najmniej jedną stację, na której jest dostępna Wi-Fi.
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
Wynik
| z | Stacje | do |
|---|---|---|
| South-West (Południowy zachód) | Południowo-środkowe> | Północ |
| South-West (Południowy zachód) | Zachodnia>Środkowa | Północ |