mch31993
(Mch31993)
October 5, 2020, 12:54pm
1
Hi Guys
I am having property nodes of student like
{studentId:"1", English:20}
{studentId:"1", Maths:20}
{studentId:"1", physics:20}
I need to have final node like
{studentId:"1",total:60}
Is it possible using Trigger?
Can anyone help on this situation??
create nodes
MERGE (s:Student {studentId: "1",name:"1"})
MERGE (math:Subject:Math {marks: 20})
MERGE (eng:Subject:English {marks: 20})
MERGE (physics:Subject:Physics {marks: 20})
MERGE (s)-[:HAS_SUBJECT]->(math)
MERGE (s)-[:HAS_SUBJECT]->(eng)
MERGE (s)-[:HAS_SUBJECT]->(physics)
and run aggregate query
MATCH (s:Student)-[r:HAS_SUBJECT]->(sub:Subject)
WITH s, sum(sub.marks) as total
MERGE (s)-[:TOTAL_MARKS]->(t:Total {marks:total})
RETURN *;
You can use trigger as well:
call apoc.trigger.add("total","MATCH (s:Student)-[r:HAS_SUBJECT]->(sub:Subject)
WITH s, sum(sub.marks) as total
MERGE (s)-[:TOTAL_MARKS]->(t:Total {marks:total})",{phase:'before'});
1 Like