carboncomputed
carboncomputed

Reputation: 1620

How to do traversal in neo4j with cypher queries?

What I'm trying to do is simply start at a node and search for all connected nodes that are a certain label. However I don't want to return the start node. How would I do this?

Example:

...<-[:parent]<-anode<-[created]-user-[created]->anode-[:parent]->anode-....->nodes...

What I would like to do is start at the user node and return all relationships but excluding the user node.

Upvotes: 1

Views: 2720

Answers (2)

carboncomputed
carboncomputed

Reputation: 1620

This is along the lines of what I was looking for.

START u = node(26)
MATCH (u)-[rels*1..10]->(node) unwind rels as r
          RETURN DISTINCT id(startNode(r)),endNode(r)

Upvotes: 1

Brian Underwood
Brian Underwood

Reputation: 10856

This will return you a list of all nodes connected via created relationships of a distance of up to 10.

MATCH user-[:created*1..10]->(anode:CertainLabel)
RETURN DISTINCT anode

Depending on your graph, you may be able to get rid of the 10, but if it's large and complex removing the max value could cause your query to run very slowly

Upvotes: 2

Related Questions