Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
12-15-2021 05:33 AM
12-15-2021 08:06 AM
Do you mean:
MATCH (child:Person {property: x})-[relationship:CHILD_OF]->(parent:Person) RETURN parent?
MATCH (child:Person {property: x})<-[relationship:PARENT_OF]-(parent:Person) RETURN child?
Or what do you mean? What is your datamodel?
I think there is no inheritance in the standard graph model of neo4j. However, I am also interested in ways to implement concepts of inheritance.
12-15-2021 10:23 PM
hi, @martin3 thanks for your quick response,
in general, I am trying to get the node children or node parents but it seems we can't know this directly
basically, I have a property name for example "node title" so when I match I use this
MATCH p = (n{property: x})-[r]->(m) RETURN p
after this match, it will return the node and all its relationships,
now I was trying to do a match in cypher or using apoc to get children's only of the node with property x.
The main purpose of this is to find the path of a list of nodes and I don't have except their property value in a given list
if you like this is my graph model
CREATE (root:A{name:"root"}), (rc1:R_C_1{name:"first child of the root"}), (rc2:R_C_2{name:"second child of the root"}),
(ch1:R_C_1_1{name:"first child of the first root child"}), (ch2:R_C_1_2{name:"second child of the first root child"}),
(node1:NODE_1{name:"node 1"}),(node2:NODE_2{name:"node 2"}), (node3:NODE_3{name:"node 3"})
CREATE (root)-[:X]->(rc1)
CREATE (root)-[:X]->(rc2)
CREATE (rc1)-[:Y]->(ch1)
CREATE (rc1)-[:Y]->(ch2)
CREATE (node1)-[:Z]->(ch1)
CREATE (node2)-[:M]->(ch1)
CREATE (node3)-[:R]->(ch1)
CREATE (node1)-[:Z]->(ch2)
CREATE (node2)-[:M]->(ch2)
and I am trying to find the following:
// this should return the given nodes only
WITH ['root', 'first child of the root', 'first child of the first root child', 'node 1', 'node 2', 'node 3'] as names
MATCH p = (n1)-[*]-()
WHERE n1.name IN names
RETURN p
// if I tried to find the path of ['root', 'first child of the root', 'node 1', 'node 2', 'node 3'] // this should return the nodes and thier relasionships ['root', 'first child of the root', 'first child of the first root child' , 'second child of the first root child' , 'node 1', 'node 2', 'node 3']
hope we can find a solution for this.
Thanks
12-17-2021 08:07 AM
If I'm understanding the situation properly, the simplest solution would be to assign variables to individual objects instead of the whole path. For example, rather than
MATCH p = (n:Label{property: x})-[r]->(m)
RETURN p
you could do
MATCH (n:Label{property: x})-->(m)
RETURN m
This performs exactly the same traversal, but only returns the child nodes. No relationships, and no parent.
12-18-2021 01:06 PM
@brian.freitas1 thanks a lot, yes I was looking for a function or cypher query to return the parent or the child of the node, so I have to do what you say
MATCH (n:Label{property: x})-->(m)
RETURN m
where node m is the child of node n
thanks for you help.
All the sessions of the conference are now available online