Freigeben über


inner_nodes() (Graph-Funktion)

Gilt für: ✅Microsoft Fabric✅

Die inner_nodes() Graph-Funktion ermöglicht den Zugriff auf die inneren Knoten eines Rands mit variabler Länge. Sie kann nur als erster Parameter der Funktionen "all()", "any()" und " map()" verwendet werden.

Hinweis

Diese Funktion wird mit dem Operator " graph-match ", " graph-shortest-paths" , "all() graph function", "any() graph function" und " map() graph"-Funktion verwendet.

Syntax

inner_nodes( Rand)

Die Parameter

Name Typ Erforderlich BESCHREIBUNG
Rand string ✔️ Ein Rand mit variabler Länge vom Operator für Diagramm-Übereinstimmungen oder vom Operatormuster "Graph-shortest-paths" . Weitere Informationen finden Sie unter Graph-Musternotation.

Rückgaben

Legt den Ausführungsbereich des allOder anymap Ausdrucks auf den inneren Knoten eines Rands mit variabler Länge fest.

Beispiele

Das Beispiel in diesem Abschnitt zeigt, wie Sie die Syntax verwenden, um Ihnen bei den ersten Schritten zu helfen.

Suchen aller Mitarbeiter in der Organisation eines Vorgesetzten

Das folgende Beispiel stellt eine Organisationshierarchie dar. Es zeigt, wie eine variable Längenkante in einer einzelnen Diagrammabfrage verwendet werden kann, um Mitarbeiter auf verschiedenen Ebenen innerhalb einer Organisationshierarchie zu finden. Die Knoten im Diagramm stellen Mitarbeiter dar und die Kanten verbinden einen Mitarbeiter mit ihrem Vorgesetzten. Nachdem das Diagramm mit dem make-graph Operator erstellt wurde, werden die all() Funktionen und inner_nodes Funktionen verwendet, um neben Alice, die Manager unter 40 Jahren haben, nach Mitarbeitern in der Organisation von Alice zu suchen. Anschließend werden sie inner_nodes zusammen verwendet, map() um die Namen dieser Manager zu erhalten.

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)

Ausgabe

Arbeitnehmer Manager reportingPath
Bob Alina []
Chris Alina []
Joe Alina []
Abend Alina ["Bob"]
Richard Alina ["Bob"]