Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
08-03-2021 04:46 AM
Lets say node A->B->C->D->E->F and so on. Like node A is connected to B, B is connected to C, C is connected to D, D is connected to E and so on. Now is there way to get all connections when I query A.
08-03-2021 05:35 AM
Not sure exactly what you are asking for, but you can return the shortest path between A and F:
MATCH (a:A {prop: 'foo'}),
(f:F {prop: 'bar'}),
p = shortestPath((a)-[*]-(f))
RETURN nodes(p)
limit 50
Or less recommended:
MATCH p = (a:A)-[*5]->(f:F)
RETURN nodes(p)
limit 50
Both of these will return far more that you probably want if not filtered correctly.
08-04-2021 03:04 AM
I mean if the nodes are connected like this. I want to print from A to F as you said, but what if I don't know the last node. From my graph, I need to find all the mutual nodes connected to the node that I query.
Here when I query A, I need to get A,B,C,D,E,F. But i don't know my last node which is F here.
08-04-2021 07:31 AM
Hi Vence,
not very easy to understand the matter, and the context either.
I presume you want to find, starting from A and after 5 relations each "end node", which means nodes that do not have further relations (also called "leaf nodes"), and then all the nodes in-between.
// Find leaf nodes
MATCH p1=(A{uniqueId:"A"})-[r5]->(Last)
optional match p2 = (Last)-[]->()
with p1, count(p2) as cp where cp = 0
RETURN nodes(p1)
(I do not know if A,B,C... name or id of the node, of the label or of the variable of the node(s). The given cypher use A and Last as variable)
Hope it helps.
08-04-2021 07:49 AM
Hi @vence.andersen17 ,
You may like a look on:
Another more 'spartan' option on directed relationships is:
MATCH path = (a:A)-[:CON*]->()
UNWIND nodes(path) as n
return distinct n
All the sessions of the conference are now available online