圖形 inner_nodes() 函式允許存取 可變長度邊緣的內部節點。 它只能當做 all()、 any()和 map() 圖表函式的第一個參數使用。
語法
inner_nodes(
邊緣)
參數
| 名稱 | 類型 | 為必填項目 | 說明 |
|---|---|---|---|
| 邊緣 | string |
✔️ | 圖形比對運算符或圖形最短路徑運算符模式中的可變長度邊緣。 如需詳細資訊,請參閱 圖形模式表示法。 |
退貨
將、 any 或 map 表示式的執行all範圍設定為可變長度邊緣的內部節點。
範例
本節中的範例示範如何使用 語法來協助您開始使用。
尋找經理組織中的所有員工
下列範例代表組織階層。 它示範如何使用單一圖表查詢中的可變長度邊緣,在組織階層內尋找不同層級的員工。 圖表中的節點代表員工,邊緣會將員工連線到其主管。 使用 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 |
|---|---|---|
| 鮑勃 | Alice | [] |
| Chris | Alice | [] |
| 喬 | Alice | [] |
| 前夕 | Alice | [“Bob”] |
| 理查 | Alice | [“Bob”] |