Compartilhar via


inner_nodes() (função graph)

Aplica-se a: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

A inner_nodes() função de grafo permite o acesso aos nós internos de uma borda de comprimento variável. Ele só pode ser usado como o primeiro parâmetro das funções de grafo all(), any()e map( ).

Observação

Essa função é usada com o operador de correspondência de grafo, o operador graph-shortest-paths, a função de grafo all(), a função de grafo any() e a função de grafo map().

Sintaxe

inner_nodes( borda)

Parâmetros

Nome Tipo Obrigatório Descrição
edge string ✔️ Uma borda de comprimento variável do operador de correspondência de grafo ou do padrão do operador graph-shortest-paths . Para obter mais informações, consulte a notação de padrão do Graph.

Devoluções

Define o escopo de execução da expressão ou map do allany nó interno de uma borda de comprimento variável.

Exemplos

O exemplo nesta seção mostra como usar a sintaxe para ajudá-lo a começar.

Localizar todos os funcionários na organização de um gerente

O exemplo a seguir representa uma hierarquia organizacional. Ele mostra como uma borda de comprimento variável em uma única consulta de grafo pode ser usada para localizar funcionários em vários níveis dentro de uma hierarquia organizacional. Os nós no grafo representam os funcionários e as bordas conectam um funcionário ao gerente. Depois que o grafo é criado usando o make-graph operador, as funções e inner_nodes as all() funções são usadas para procurar funcionários na organização de Alice, além de Alice, que tem gerentes com menos de 40 anos. Em seguida, map() e inner_nodes são usados juntos para obter os nomes desses gerentes.

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)

Saída

empregado gerente reportingPath
Carlos Alice []
Chris Alice []
Joe Alice []
Ev Alice ["Bob"]
Richard Alice ["Bob"]