Prasanth Kumar
Prasanth Kumar

Reputation: 1

Writing cypher query for traversing the path

I am new to Neo4j.

I am using this query to get the below layout in traversing the path in first image:

first image

Code:

MATCH p = (r:Reports)<--(s:Schedules)<--(m:MDRMs)<--(br:Business_Requirements)-->(rp: Report_Logic)-->(ra: Reporting_layer_attributes)
where r.Report_Name ='FFIEC 031' and s.Schedule = 'RC-B - Securities' RETURN p

Blue coloured nodes are referred as Business_Requirements which have additional linked Silver coloured (Business_Attributes) nodes with relationship as MAPPED_TO.

How can I bring out the below layout through cypher query. Since the silver color nodes are not in the path, I was not able to pull the below required layout in the second image:

second image

Upvotes: 0

Views: 29

Answers (1)

Graphileon
Graphileon

Reputation: 5385

You can extend the MATCH by adding a second path p2, and including it in the RETURN

MATCH p = (r:Reports)<--(s:Schedules)<--(m:MDRMs)<--(br:Business_Requirements)-->(rp: Report_Logic)-->(ra: Reporting_layer_attributes),
      p2 = (br)<-[:MAPPED_TO]-(ba:Business_Attributes)

where r.Report_Name ='FFIEC 031' and s.Schedule = 'RC-B - Securities' 
RETURN p,p2

in case the MAPPED_TO rel is not always there, you can also use the OPTIONAL MATCH

MATCH p = (r:Reports)<--(s:Schedules)<--(m:MDRMs)<--(br:Business_Requirements)-->(rp: Report_Logic)-->(ra: Reporting_layer_attributes)
where r.Report_Name ='FFIEC 031' and s.Schedule = 'RC-B - Securities' 
OPTIONAL MATCH p2 = (br)<-[MAPPED_TO]-(ba:Business_Attributes)

RETURN p,p2

Upvotes: 1

Related Questions