Search code examples
neo4jmatchrelationships

Getting relationships from all node's in Neo4j


I am trying to query using Neo4j. I would like to print result of obtaining information while AUTO-COMPLETE is ON in Neo4j. For example, suppose query that creating 3 nodes as shown below.

create (david:Person {name: 'david'}), (mike:Person {name: 'mike'}), (book:Book {title:'book'}), (david)-[:KNOWS]->(mike), (david)-[:WRITE]->(book), (mike)-[:WRITE]->(book)

Here are 2 images:

  • Auto-complete on

  • Auto-complete off

Figure is shown after query, and I would like to obtain all relating node’s relationships based on starting node ('book' node). I used this query as shown below.

match (book:Book)-[r]-(person) return book, r, person

Whether AUTO-COMPLETE is ON or OFF, I expect to obtain all node’s relationships including “David knows Mike”, but system says otherwise.

I studied a lot of Syntax structure at neo4j website, and somehow it is very difficult for me. So, I upload this post to acquire assistance for you.


Solution

  • Thanks to InverseFalcon, this is my query that works.

    MATCH p = (book:Book)-[r]-(person:Person) 
    UNWIND nodes(p) as allnodes WITH COLLECT(ID(allnodes)) AS ALLID 
    MATCH (a)-[r2]-(b) 
    WHERE ID(a) IN ALLID AND ID(b) IN ALLID 
    WITH DISTINCT r2 
    RETURN startNode(r2), r2, endNode(r2)