inner_nodes(图函数)

适用于:✅Azure 数据资源管理器Azure MonitorMicrosoft Sentinel

inner_nodes() 图形函数允许访问 可变长度边缘的内部节点。 它只能用作 all(、any()map() 图形函数的第一个参数。

注释

此函数与 图形匹配 运算符、 图形最短路径 运算符、 all() 图形函数、 any() 图形函数和 map() 图形函数一起使用。

语法

inner_nodes( 边缘)

参数

名字 类型 必填 说明
边缘 string ✔️ 图形匹配运算符图形最短路径运算符 模式中的可变长度边缘。 有关详细信息,请参阅 图形模式表示法

退货

将或 allany表达式的执行范围map设置为可变长度边缘的内部节点。

例子

本节中的示例演示如何使用语法帮助你入门。

查找经理组织中的所有员工

以下示例表示组织层次结构。 它显示了单个图形查询中的可变长度边缘如何用于在组织层次结构中查找不同级别的员工。 图中的节点表示员工,边缘将员工连接到其经理。 使用 make-graph 运算符生成图形后,all()inner_nodes 函数用于搜索 Alice 组织的员工,除了 Alice,他们拥有 40 岁以下的经理。 然后,map()inner_nodes 一起使用来获取这些经理的姓名。

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)

输出

员工 经理 reportingPath
鲍勃 爱丽丝 []
克里斯 爱丽丝 []
爱丽丝 []
前夕 爱丽丝 [“Bob”]
理查 爱丽丝 [“Bob”]