Friday 20 August 2021

Neo4j: Specify the relationship direction while querying

You can specify the relationship direction using -> (arrow) symbol.

 

Example

MATCH (n1)-[rel]->(n2) RETURN n1, rel, n2
Above statement return the nodes and relationship, if there is any relationship from n1 to n2.

MATCH (n1)<-[rel]-(n2) RETURN n1, rel, n2
Above statement return the nodes and relationship, if there is any relationship from n2 to n1.

 

Let’s see it with an example.

 

Step 1: Open neo4j browser by hitting following url in browser.

http://localhost:7474/browser/

 

 


 

Step 2: Insert data by executing below query.

<pre class="hljs" style="display: block; overflow-x: auto; padding: 0.5em; background: rgb(240, 240, 240) none repeat scroll 0% 0%; color: rgb(68, 68, 68);">CREATE (p1:Person{name: "Rama Krishna", age: 32, city: "Bangalore", male: true, designation: "CEO"}),
(p2:Person{name: "Murali", age: 32, city: "Hyderabad", male: true, designation: "Vice President"}),
(p3:Person{name: "Gopi", age: 34, city: "Chennai", male: true, designation: "Vice President"}),
(p4:Person{name: "Kiran", age: 28, city: "Bangalore", male: true, designation: "Director"}),
(p5:Person{name: "Siva", age: 45, city: "Hyderabad", male: true, designation: "Director"}),
(p6:Person{name: "Kiran", age: 36, city: "Hyderabad", male: true, designation: "Manager"}),
(p7:Person{name: "Ritweek", age: 23, city: "Bangalore", male: true, designation: "Manager"}),
(p8:Person{name: "Sudheer", age: 24, city: "Chennai", male: true, designation: "Manager"}),
(p9:Person{name: "Naveen", age: 37, city: "Bangalore", male: true, designation: "Employee"}),
(p10:Person{name: "Sailaja", age: 31, city: "Hyderabad", female: true, designation: "Employee"}),
(p11:Person{name: "Harika", age: 36, city: "Bangalore", female: true, designation: "Employee"}),
(p12:Person{name: "Brahmam", age: 41, city: "Bangalore", male: true, designation: "Employee"}),
(office1:Location{name: "Pluto", city: "Bangalore"}),
(office2:Location{name: "Mars", city: "Chennai"})
MERGE (p2)-[:REPORT_TO{from: "2014"}]-&gt;(p1)
MERGE (p3)-[:REPORT_TO{from: "2016"}]-&gt;(p1)
MERGE (p4)-[:REPORT_TO{from: "1997"}]-&gt;(p2)
MERGE (p5)-[:REPORT_TO{from: "1987"}]-&gt;(p3)
MERGE (p6)-[:REPORT_TO{from: "2001"}]-&gt;(p4)
MERGE (p7)-[:REPORT_TO{from: "2009"}]-&gt;(p4)
MERGE (p8)-[:REPORT_TO{from: "1998"}]-&gt;(p5)
MERGE (p9)-[:REPORT_TO{from: "2003"}]-&gt;(p6)
MERGE (p10)-[:REPORT_TO{from: "2004"}]-&gt;(p6)
MERGE (p11)-[:REPORT_TO{from: "2008"}]-&gt;(p7)
MERGE (p12)-[:REPORT_TO{from: "2019"}]-&gt;(p8)
RETURN p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, office1, office2
</pre>




Step 3: Execute below query to get nodes and their relationship.

MATCH (n1)-[rel]->(n2) RETURN n1, rel, n2



MATCH (n1)<-[rel]-(n2) RETURN n1, rel, n2


 

 

 

 

Previous                                                    Next                                                    Home

No comments:

Post a Comment