Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
La any() función de grafo evalúa una condición para cada borde o nodo interno a lo largo de una ruta de acceso de longitud variable .
Nota:
Esta función se usa con los operadores graph-match y graph-shortest-paths .
Sintaxis
any(
borde,condición)
any(inner_nodes(
borde),condición)
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| borde | string |
✔️ | Borde de longitud variable desde el operador graph-match o el patrón de operador graph-shortest-paths . Para obtener más información, consulte Notación de patrones de graph. |
| condición | string |
✔️ | Expresión booleana compuesta de propiedades del nodo perimetral o interno, cuando se usa inner_nodes , en el borde de longitud variable. Se hace referencia a una propiedad mediante el nombre de propiedad directamente. La expresión se evalúa para cada borde o nodo interno en el borde de longitud variable. |
Devoluciones
Devuelve true si la condición se evalúa como true para al menos un borde o nodo interno, cuando se usa inner_nodes , en el borde de longitud variable. De lo contrario, devuelve false.
Para rutas de acceso de longitud cero, la condición se evalúa como false.
Ejemplos
En el ejemplo siguiente se usan las Locations tablas de datos y Routes para construir un grafo que busca rutas de acceso de una ubicación de origen a una ubicación de destino a través de .route Usa any() la función para buscar rutas de acceso que usan "Train" el método de transporte al menos una vez. Devuelve el nombre de ubicación de origen, el nombre de ubicación de destino y los métodos de transporte a lo largo de la ruta.
// 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)
Salida
| src_LocationName | dest_LocationName | route_TransportModes |
|---|---|---|
| Seattle | San Francisco | ["Train"] |
| Chicago | Seattle | ["Train"] |
| Nueva York | Chicago | ["Train"] |
| Seattle | Los Ángeles | [ "Entrenar", "Camión" ] |
| Chicago | San Francisco | [ "Entrenar", "Entrenar" ] |
| Nueva York | Seattle | [ "Entrenar", "Entrenar" ] |
| Los Ángeles | Chicago | [ "Camión", "Entrenar" ] |
En el ejemplo siguiente se muestra cómo usar el graph-shortest-paths operador con las any() funciones y inner_nodes para buscar una ruta de acceso entre dos estaciones de una red de transporte. La consulta construye un gráfico a partir de los connections datos y encuentra la ruta más corta de la "South-West" estación a la "North" estación, pasando por al menos una estación en la que Wi-Fi está disponible.
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
Salida
| De | Estaciones | Para |
|---|---|---|
| Suroeste | Centro-sur> | Norte |
| Suroeste | Centro-oeste> | Norte |