implement relationship queries

This commit is contained in:
2025-03-30 22:02:33 +02:00
parent 6b41ce5f49
commit f036bff6d6
8 changed files with 26 additions and 22 deletions

View File

@@ -59,15 +59,11 @@ var HardDeletePersonCypherQuery string
//go:embed queries/get_relationship.cypher
var GetRelationshipCypherQuery string
// Requires id1, id2, Relationship parameters.
// Requires childId, parentId, childRelationship, parentRelationship parameters.
// returns relationships
//
//go:embed queries/create_directed_relationship.cypher
var CreateDirectedRelationshipCypherQuery string
// Requires id1, id2, Relationship1, Relationship2 parameters.
//
//go:embed queries/create_two_directed_relationships.cypher
var CreateTwoDirectedRelationshipCypherQuery string
//go:embed queries/create_child_parent_relationships.cypher
var CreateChildParentRelationshipCypherQuery string
// Requires id parameter.
//

View File

@@ -0,0 +1,6 @@
MATCH (a:Person), (b:Person)
WHERE id(a) = $childId AND id(b) = $parentId AND $parentId != $childId
MERGE (a)-[r1:Child]->(b)-[r2:Parent]->(a)
ON CREATE SET r1 = $childRelationship
ON CREATE SET r2 = $parentRelationship
RETURN collect(r1)+collect(r2) as relationships;

View File

@@ -1,5 +0,0 @@
MATCH (a:Person)
OPTIONAL MATCH (b:Person)
WHERE id(a) = $id1 AND id(b) = $id2
CREATE (a)-[r:Relationship $Relationship]->(b)
RETURN r AS relationship;

View File

@@ -1,4 +0,0 @@
MATCH (a:Person), (b:Person)
WHERE id(a) = $id1 AND id(b) = $id2
CREATE (a)-[r:Relationship $Relationship]-(b)
RETURN r as relationship

View File

@@ -0,0 +1,6 @@
MATCH (a:Person), (b:Person)
WHERE id(a) = $id1 AND id(b) = $id2 AND $id1 != $id2
MERGE (a)-[r1:Sibling]->(b)-[r2:Sibling]->(a)
ON CREATE SET r1 = $Relationship1
ON CREATE SET r2 = $Relationship2
RETURN collect(r1)+collect(r2) as relationships;

View File

@@ -0,0 +1,4 @@
MATCH (a:Person)-[:Parent]->(b:Person)-[:Child]->(c:Person)
WHERE id(a) = $childId AND id(b) = $parentId AND $parentId != $childId AND id(c) != id(a)
MERGE (a)-[r1:Sibling]->(c)-[r2:Sibling]->(a)
RETURN collect(r1)+collect(r2) as relationships;

View File

@@ -0,0 +1,6 @@
MATCH (a:Person), (b:Person)
WHERE id(a) = $id1 AND id(b) = $id2 AND $id1 != $id2
MERGE (a)-[r1:Spouse]->(b)-[r2:Spouse]->(a)
ON CREATE SET r1 = $Relationship1
ON CREATE SET r2 = $Relationship2
RETURN collect(r1)+collect(r2) as relationships;

View File

@@ -1,5 +0,0 @@
MATCH (a:Person), (b:Person)
WHERE id(a) = $id1 AND id(b) = $id2
CREATE (a)-[r1:Relationship $Relationship1]->(b)
CREATE (b)-[r2:Relationship $Relationship2]->(a)
RETURN r1 as relationship1, r2 as relationship2