Partager via


any() (fonction de graphe)

S’applique à : ✅Microsoft Fabric

La any() fonction de graphe évalue une condition pour chaque bord ou nœud interne le long d’un chemin de longueur variable .

Remarque

Cette fonction est utilisée avec les de correspondance de graphique et les chemins d’accès les plus courts graphiques.

Syntaxe

any( bord,condition)

any(inner_nodes( bord),condition)

Paramètres

Nom Catégorie Obligatoire Descriptif
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.
condition string ✔️ Expression booléenne composée de propriétés du nœud interne ou du bord, lorsque inner_nodes est utilisé, dans le bord de longueur variable. Une propriété est référencée directement à l’aide du nom de propriété. L’expression est évaluée pour chaque bord ou nœud interne dans le bord de longueur variable.

Retours

Retourne true si la condition prend true la valeur pour au moins un bord ou un nœud interne, lorsque inner_nodes est utilisé, dans le bord de longueur variable. Sinon, falseest retourné.

Pour les chemins de longueur zéro, la condition prend la falsevaleur .

Exemples

L’exemple suivant utilise les tables de données et Locations les Routes tables de données pour construire un graphique qui recherche des chemins d’accès d’un emplacement source vers un emplacement de destination via un route. Il utilise any() la fonction pour rechercher des chemins qui utilisent "Train" la méthode de transport au moins une fois. Elle retourne le nom de l’emplacement source, le nom de l’emplacement de destination et les méthodes de transport le long de l’itinéraire.

// Locations table (nodes)
let Locations = datatable(LocationName: string, LocationType: string) [
    "New York", "City",
    "San Francisco", "City",
    "Chicago", "City",
    "Los Angeles", "City",
    "Seattle", "Warehouse"
];
// Routes table (edges)
let Routes = datatable(OriginLocationID: string, DestinationLocationID: string, TransportMode: string) [
    "New York", "San Francisco", "Truck",
    "New York", "Chicago", "Train",
    "San Francisco", "Los Angeles", "Truck",
    "Chicago", "Seattle", "Train",
    "Los Angeles", "New York", "Truck",
    "Seattle", "San Francisco", "Train"
];
Routes
| make-graph OriginLocationID --> DestinationLocationID with Locations on LocationName
| graph-match (src)-[route*1..2]->(dest)
  where any(route, TransportMode == "Train")
  project src.LocationName, 
        dest.LocationName, 
        route_TransportModes = map(route, TransportMode)

Sortie

src_LocationName dest_LocationName route_TransportModes
Seattle San Francisco ["Train"]
Chicago Seattle ["Train"]
New York Chicago ["Train"]
Seattle Los Angeles [
« Train »,
« Camion »
]
Chicago San Francisco [
« Train »,
« Train »
]
New York Seattle [
« Train »,
« Train »
]
Los Angeles Chicago [
« Camion »,
« Train »
]

L’exemple suivant montre comment utiliser l’opérateur graph-shortest-paths avec les any() fonctions et inner_nodes rechercher un chemin entre deux stations d’un réseau de transport. La requête construit un graphique à partir des connections données et trouve le chemin le plus court de la "South-West" station à la "North" station, en passant par au moins une station où Wi-Fi est disponible.

let connections = datatable(from_station:string, to_station:string, line:string) 
[ 
  "Central", "North", "red",
  "North", "Central", "red", 
  "Central", "South",  "red", 
  "South", "Central",  "red", 
  "South", "South-West", "red", 
  "South-West", "South", "red", 
  "South-West", "West", "red", 
  "West", "South-West", "red", 
  "Central", "East", "blue", 
  "East", "Central", "blue", 
  "Central", "West", "blue",
  "West", "Central", "blue",
]; 
let stations = datatable(station:string, wifi: bool) 
[ 
  "Central", true,
  "North", false,
  "South", false,
  "South-West", true,
  "West", true,
  "East", false
];
connections 
| make-graph from_station --> to_station with stations on station
| graph-match cycles=none  (start)-[connections*2..5]->(destination)
  where start.station == "South-West" and
        destination.station == "North" and 
        any(inner_nodes(connections), wifi)
  project from = start.station, 
          stations = strcat_array(map(inner_nodes(connections), station), "->"), 
          to = destination.station

Sortie

De Stations à
Sud-ouest Sud->Centre Nord
Sud-ouest Ouest->Centre Nord