I have two labels in one database: node_list and edge_list. The keys in node_list are: {ID, author, time_stamp,,,,}. The keys in edge_list are {from_ID, to _ID}.
ID and from_ID, to_ID are in the same format.
Now I want to create the relationship among the node_list IDs based on the relationship defined in the edge_list. I had tried:
MATCH (p1: node_list{ID}) (p2: node_list{ID}) (edge:edge_list)
MERGE (p1)-[r:point_to]->(p2)
ON p1 = edge.from_ID and p2=edge.to_ID
However, it does not work. Can anyone help me figure out how to create this relationship? Thank you very much.
I still got the following error sign by running the code:
MATCH (p1: node_list{ID}),(p2: node_list{ID}),(edge:edge_list)
MERGE (p1)-[r:point_to]->(p2)
ON p1 = edge.from_ID and p2=edge.to_ID
RETURN r
Return:
Invalid input 'p': expected whitespace, comment, MATCH or CREATE (line 3, column 4 (offset: 108))
"ON p1 = edge.from_ID and p2=edge.to_ID"
^
I think I haven't understood the philosophy of Cypher yet. In my case, I want to create relationships within my node_list from a seperate labels that only stores the relationships. I guess this should be similar with the friendship type of networks. Is there any similar case study on social network applications that I can borrow? Thanks.
Let's start working with Sandboxes prepared by Neo4j.
Next try build you Graph form CREATE nodes, and CREATE relation (check correct of you Nodes/Relation etc."
Next learn more about MERGE.
Of course, I can get you answer, but I know from my exp that is too lazy way.
I would familiarise yourself with nodes, aliases and properties. you are getting tripped up at the ON section comparing a node to a property.
If you want to know what a working query would look like see below:
match (n:node_list) match (m:node_list) match (e:edge_list) Matches nodes
where n.ID = e.from_ID and m.ID = e.to_ID Validates criteria note node.property structure e.g. n is node and id is property, originally you were comparing the edge property to the p1 node
merge (n)-[r:point_to]->(m) produces relationships
return n,m,r returns results
I think what got me confused was the MATCH (p1: node_list{ID}). I though node{property} is already making n referring to the specific property. But apparently it is not. Thanks for clarifying it.