0
我想要做一個棘手的查詢。 我需要檢查是否存在關係;neo4j MERGE,SET,CASE
- 如果確實我需要在這個關係到最大(0,道具+ VAL)
- 如果沒有我需要創建屬性設置爲最大值(0設置屬性(丙)值)
該屬性可以爲負數。
這裏的基本上就是我要去的,但這種格式將不是在合併後,因爲你不能有一個工作,聲明:
MATCH (n1:Type1 {id:{id1}), (n2:Type2 {id: {id2})
MERGE (n1)-[r:RELATIONSHIP]->(n2) WITH CASE
WHEN r.prop + {val} < 0 THEN 0
ELSE r.prop + {val} END as prop
ON CREATE SET r.prop = prop
ON MATCH SET r.prop = prop
這是它會如何看待這兩個部分,但我想沒有查詢兩次:
MATCH (n1:Type1 {id:{id1}), (n2:Type2 {id: {id2})
MERGE (n1)-[r:RELATIONSHIP]->(n2)
ON CREATE SET r.prop = 0
MATCH (n1:Type1 {id:{id1})-[r:RELATIONSHIP]->n2:Type2 {id: {id2})
WITH r, CASE
WHEN r.prop + {val} < 0 THEN 0
ELSE r.prop + {val} END as prop
SET r.prop = prop
對不起,但這不起作用。當r.prop + {val} <0並且它需要在CREATE上將r.prop設置爲{val}或0時,它並沒有引起注意 – v4gil