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 all() 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
all(
bord,condition)
all(inner_nodes(
bord),condition)
Paramètres
| Nom | Catégorie | Obligatoire | Descriptif |
|---|---|---|---|
| bord | 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 chaque bord ou 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 truevaleur .
Exemples
L’exemple suivant montre comment utiliser l’opérateur graph-match avec la all() fonction pour rechercher tous les chemins d’aller-retour entre deux stations d’un réseau de transport. Il utilise une ligne différente pour chaque direction. La requête construit un graphique à partir des connections données, recherchant tous les chemins d’accès jusqu’à cinq connexions longues qui utilisent la "red" ligne pour l’itinéraire vers l’extérieur et la "blue" ligne de l’itinéraire de retour. La all() fonction garantit que tous les bords du bord de longueur variable font partie de la même ligne, soit "red""blue" .
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",
];
connections
| make-graph from_station --> to_station with_node_id=station
| graph-match (start)-[outward*1..5]->(destination)-[return*1..5]->(start)
where start.station != destination.station and
all(outward, line == "red") and
all(return, line == "blue")
project from = start.station,
outward_stations = strcat_array(map(inner_nodes(outward), station), "->"),
to = destination.station,
return_stations = strcat_array(map(inner_nodes(return), station), "->"),
back=start.station
Sortie
| de | outward_stations | à | return_stations | Précédent |
|---|---|---|---|---|
| Central | Nord-Centre-Sud>>->South-West | Ouest | Central | |
| Ouest | Sud-Ouest-Sud-Centre-Nord>>> | Central | Ouest | |
| Central | Sud->South-West | Ouest | Central | |
| Ouest | Sud-Ouest-Sud> | Central | Ouest | |
| Central | Nord-Centre-Sud>>->South-West | Ouest | Centre-Est> | Central |
| Ouest | Sud-Ouest-Sud-Centre-Nord>>> | Central | Centre-Est> | Ouest |
| Central | Sud->South-West | Ouest | Centre-Est> | Central |
| Ouest | Sud-Ouest-Sud> | Central | Centre-Est> | Ouest |
L’exemple suivant montre comment utiliser l’opérateur graph-shortest-paths avec les all() 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 les stations 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-shortest-paths (start)-[connections*2..5]->(destination)
where start.station == "South-West" and
destination.station == "North" and
all(inner_nodes(connections), wifi)
project from = start.station,
stations = strcat_array(map(inner_nodes(connections), station), "->"),
to = destination.station
Sortie
| de | Stations | à |
|---|---|---|
| Sud-ouest | Ouest->Centre | Nord |