Vue d’ensemble
La fonction toGraph()
fusionne des NODEs, EDGEs, PATHs et des GRAPHs en un sous-graphe de type GRAPH, et retourne ce sous-graphe. Elle permet un nombre infini d'arguments.
Arguments:
- 1ère valeur <[]NODE, []EDGE, []PATH, GRAPH>
- 2ème valeur <[]NODE, []EDGE, []PATH, GRAPH> ...
Retours:
- Sous-graphe <GRAPH>
Exemple de graphe : (à utiliser pour les exemples suivants)
Exécutez les UQLs ci-dessous un par un dans un graphset vide pour créer des données de graphe:create().node_schema("country").node_schema("movie").node_schema("director").edge_schema("filmedIn").edge_schema("direct")
create().node_property(@*, "name")
insert().into(@country).nodes([{_id:"C001", _uuid:1, name:"France"}, {_id:"C002", _uuid:2, name:"USA"}])
insert().into(@movie).nodes([{_id:"M001", _uuid:3, name:"Léon"}, {_id:"M002", _uuid:4, name:"The Terminator"}, {_id:"M003", _uuid:5, name:"Avatar"}])
insert().into(@director).nodes([{_id:"D001", _uuid:6, name:"Luc Besson"}, {_id:"D002", _uuid:7, name:"James Cameron"}])
insert().into(@filmedIn).edges([{_uuid:1, _from_uuid:3, _to_uuid:1}, {_uuid:2, _from_uuid:4, _to_uuid:1}, {_uuid:3, _from_uuid:3, _to_uuid:2}, {_uuid:4, _from_uuid:4, _to_uuid:2}, {_uuid:5, _from_uuid:5, _to_uuid:2}])
insert().into(@direct).edges([{_uuid:6, _from_uuid:6, _to_uuid:3}, {_uuid:7, _from_uuid:7, _to_uuid:4}, {_uuid:8, _from_uuid:7, _to_uuid:5}])
Utilisation Commune
Exemple : Fusionner des NODEs et des EDGEs pour créer un GRAPH
n({name == "James Cameron"}).e().n({@movie} as m)
.e(as e).n({@country} as c)
return toGraph(listUnion(collect(m),collect(c)),collect(e))
{
nodes:[
{id:"M002", uuid:4, schema:"movie", values:{name:"The Terminator"}},
{id:"M003", uuid:5, schema:"movie", values:{name:"Avatar"}},
{id:"C001", uuid:1, schema:"country", values:{name:"France"}},
{id:"C002", uuid:2, schema:"country", values:{name:"USA"}}
],
edges:[
{uuid:2, from_uuid:4, to_uuid:1, from:"M002", to:"C001", schema:"filmedIn", values:{}},
{uuid:4, from_uuid:4, to_uuid:2, from:"M002", to:"C002", schema:"filmedIn", values:{}},
{uuid:5, from_uuid:5, to_uuid:2, from:"M003", to:"C002", schema:"filmedIn", values:{}},
]
}
Exemple : Fusionner des PATHs pour créer un GRAPH
n({name == "James Cameron"}).e().n({@movie})
.e().n({@country}) as p
return toGraph(collect(p))
{
nodes:[
{id:"D002", uuid:7, schema:"director", values:{name:"James Cameron"}},
{id:"M002", uuid:4, schema:"movie", values:{name:"The Terminator"}},
{id:"M003", uuid:5, schema:"movie", values:{name:"Avatar"}},
{id:"C001", uuid:1, schema:"country", values:{name:"France"}},
{id:"C002", uuid:2, schema:"country", values:{name:"USA"}}
],
edges:[
{uuid:2, from_uuid:4, to_uuid:1, from:"M002", to:"C001", schema:"filmedIn", values:{}},
{uuid:7, from_uuid:7, to_uuid:4, from:"D002", to:"M002", schema:"direct", values:{}},
{uuid:4, from_uuid:4, to_uuid:2, from:"M002", to:"C002", schema:"filmedIn", values:{}},
{uuid:5, from_uuid:5, to_uuid:2, from:"M003", to:"C002", schema:"filmedIn", values:{}},
{uuid:8, from_uuid:7, to_uuid:5, from:"D002", to:"M003", schema:"direct", values:{}},
]
}