Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 |