次の方法で共有


inner_nodes() (グラフ関数)

適用対象: ✅Microsoft FabricAzure データ エクスプローラーAzure MonitorMicrosoft Sentinel

inner_nodes()グラフ関数を使用すると、可変長エッジの内部ノードにアクセスできます。 all()any()、map() グラフ関数の最初のパラメーターとしてのみ使用できます。

この関数は、 graph-match 演算子、 graph-shortest-paths 演算子、 all() グラフ関数、 any() グラフ関数、 map() グラフ関数と共に使用されます。

構文

inner_nodes( )

パラメーター

名前 タイプ 必須 説明
string ✔️ グラフ一致演算子またはグラフ最短パス演算子パターンからの可変長エッジ。 詳細については、「 グラフ パターン表記」を参照してください。

返品ポリシー

allany、またはmap式の実行スコープを可変長エッジの内部ノードに設定します。

例示

このセクションの例では、構文を使用して作業を開始する方法を示します。

マネージャーの組織内のすべての従業員を検索する

次の例は、組織の階層を表しています。 1 つのグラフ クエリの可変長エッジを使用して、組織階層内のさまざまなレベルの従業員を検索する方法を示します。 グラフ内のノードは従業員を表し、エッジは従業員を上司に接続します。 make-graph演算子を使用してグラフを構築した後、all()関数とinner_nodes関数を使用して、40 未満のマネージャーを持つ Alice 以外の Alice の組織内の従業員を検索します。 次に、 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)

出力

employee マネージャー reportingPath
ボブ Alice []
Chris Alice []
ジョー Alice []
Eve Alice ["Bob"]
リチャード Alice ["Bob"]