Partager via


inner_nodes() (fonction de graphe)

S’applique à : ✅Microsoft Fabric✅

La inner_nodes() fonction de graphe permet d’accéder aux nœuds internes d’un bord de longueur variable. Il ne peut être utilisé que comme premier paramètre des fonctions de graphe all(),any() et map().

Remarque

Cette fonction est utilisée avec l’opérateur de correspondance de graphique, l’opérateur graph-shortest-paths, la fonction de graphique all(), la fonction graphique any() et la fonction de graphique map().

Syntaxe

inner_nodes( bord)

Paramètres

Nom Catégorie Obligatoire Description
de périphérie string ✔️ Un bord de longueur variable de l’opérateur de correspondance de graphique ou opérateur de chemins d’accès les plus courts du graphique modèle. Pour plus d’informations, consultez notation de modèle Graph.

Retours

Définit l’étendue d’exécution de l’expression any ou map du allnœud interne d’un bord de longueur variable.

Exemples

L’exemple de cette section montre comment utiliser la syntaxe pour vous aider à commencer.

Rechercher tous les employés dans l’organisation d’un responsable

L’exemple suivant représente une hiérarchie organisationnelle. Il montre comment une arête de longueur variable dans une requête de graphe unique peut être utilisée pour rechercher des employés à différents niveaux au sein d’une hiérarchie organisationnelle. Les nœuds du graphique représentent les employés et les bords connectent un employé à son responsable. Une fois le graphique généré à l’aide de l’opérateur make-graph , les all() fonctions sont inner_nodes utilisées pour rechercher des employés dans l’organisation d’Alice en plus d’Alice, qui ont des gestionnaires de moins de 40 ans. Ensuite, map() et inner_nodes sont utilisés ensemble pour obtenir les noms de ces responsables.

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)

Sortie

employé gestionnaire reportingPath
Bob Alice []
Chris Alice []
Joe Alice []
Veille Alice ["Bob"]
Richard Alice ["Bob"]