Udostępnij przez


any() (funkcja graph)

Dotyczy: ✅Microsoft Fabric

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