Compartir a través de


inner_nodes() (función graph)

Se aplica a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

La inner_nodes() función de grafo permite el acceso a los nodos internos de un borde de longitud variable. Solo se puede usar como primer parámetro de las funciones de grafo all(),any()y map().

Nota:

Esta función se usa con el operador graph-match, el operador graph-shortest-paths, la función all() graph, any() graph function y map().

Sintaxis

inner_nodes( borde)

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.

Devoluciones

Establece el ámbito de ejecución de la allexpresión , any o map en el nodo interno de un borde de longitud variable.

Ejemplos

En el ejemplo de esta sección se muestra cómo usar la sintaxis para ayudarle a empezar.

Buscar todos los empleados en la organización de un administrador

En el ejemplo siguiente se representa una jerarquía organizativa. Muestra cómo se puede usar un borde de longitud variable en una sola consulta de grafo para buscar empleados en varios niveles dentro de una jerarquía organizativa. Los nodos del gráfico representan a los empleados y los bordes conectan un empleado a su administrador. Después de crear el gráfico con el make-graph operador , las all() funciones y inner_nodes se usan para buscar empleados en la organización de Alice además de Alice, que tienen administradores menores de 40 años. A continuación, map() y inner_nodes se usan juntos para obtener los nombres de esos administradores.

let employees = datatable(name:string, age:long) 
[ 
  "Alice", 32,  
  "Bob", 31,  
  "Eve", 27,  
  "Joe", 29,  
  "Chris", 45, 
  "Alex", 35,
  "Ben", 23,
  "Richard", 39,
]; 
let reports = datatable(employee:string, manager:string) 
[ 
  "Bob", "Alice",  
  "Chris", "Alice",  
  "Eve", "Bob",
  "Ben", "Chris",
  "Joe", "Alice", 
  "Richard", "Bob"
]; 
reports 
| make-graph employee --> manager with employees on name 
| graph-match (manager)<-[reports*1..5]-(employee)
  where manager.name == "Alice" and all(inner_nodes(reports), age < 40)
  project employee = employee.name, manager = manager.name, reportingPath = map(inner_nodes(reports), name)

Salida

empleado gerente reportingPath
Bob Alice []
Chris Alice []
Joe Alice []
Eve Alice ["Bob"]
Richard Alice ["Bob"]