all() (funkce grafu)

Přepněte služby pomocí rozevíracího seznamu Verze . Přečtěte si další informace o navigaci.
Platí pro: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Funkce all() grafu vyhodnocuje podmínku pro každý okraj nebo vnitřní uzel podél proměnné cesty délky .

Poznámka:

Tato funkce se používá s operátory porovnávání grafů a nejkratších cest grafu .

Syntaxe

all( okraj,podmínka)

all(inner_nodes( okraj),podmínka)

Parametry

Název Typ Povinné Popis
okraj string ✔️ Hrana délky proměnné ze vzoru operátoru shody grafu nebo operátoru nejkratších cest grafu . Další informace najdete v článku Zápis schématu grafu.
podmínka string ✔️ Logický výraz složený z vlastností hraničního nebo vnitřního uzlu při použití inner_nodes v okraji proměnné délky. Na vlastnost se odkazuje přímo pomocí názvu vlastnosti. Výraz se vyhodnocuje pro každý okraj nebo vnitřní uzel na okraji proměnné délky.

Návraty

Vrátí true , pokud se podmínka vyhodnotí jako true pro každý okraj nebo vnitřní uzel, pokud se použije inner_nodes v okraji proměnné délky. V opačném případě vrátí false.

U cest nulové délky se podmínka vyhodnotí jako true.

Příklady

Následující příklad ukazuje, jak pomocí operátoru graph-matchall() s funkcí najít všechny cesty zpáteční cesty mezi dvěma stanicemi v přepravní síti. Pro každý směr používá jinou čáru. Dotaz vytvoří graf z connections dat, vyhledá všechny cesty až pět připojení, která používají "red" čáru pro vnější trasu a čáru "blue" pro zpáteční trasu. Funkce all() zajišťuje, že všechny hrany v hraně s proměnlivou délkou jsou součástí stejné čáry, buď "red" nebo "blue".

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-match (start)-[outward*1..5]->(destination)-[return*1..5]->(start)
  where start.station != destination.station and 
        all(outward, line == "red") and
        all(return, line == "blue") 
  project from = start.station, 
          outward_stations = strcat_array(map(inner_nodes(outward), station), "->"), 
          to = destination.station, 
          return_stations = strcat_array(map(inner_nodes(return), station), "->"), 
          back=start.station

Výstup

od outward_stations na return_stations hřbet
Střed >Středojižní>>South-West Západ Střed
Západ Jih-západ-jih-jih-střed-sever>>> Střed Západ
Střed Jih –>South-West Západ Střed
Západ Jih-západ –>jih Střed Západ
Střed >Středojižní>>South-West Západ Střed–>východ Střed
Západ Jih-západ-jih-jih-střed-sever>>> Střed Východ –> střed Západ
Střed Jih –>South-West Západ Střed–>východ Střed
Západ Jih-západ –>jih Střed Východ –> střed Západ

Následující příklad ukazuje, jak pomocí operátoru graph-shortest-pathsall() s funkcemi inner_nodes najít cestu mezi dvěma stanicemi v přepravní síti. Dotaz vytvoří graf z connections dat a najde nejkratší cestu ze "South-West" stanice k "North" stanici a prochází stanicemi, kde je k dispozici 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-shortest-paths (start)-[connections*2..5]->(destination)
  where start.station == "South-West" and
        destination.station == "North" and 
        all(inner_nodes(connections), wifi)
  project from = start.station, 
          stations = strcat_array(map(inner_nodes(connections), station), "->"), 
          to = destination.station

Výstup

od stanice na
Jihozápadní Středozápad> Sever