2013-11-05 5 views
2

내 프로젝트에 neo4j 2.0을 사용하고 있습니다. Cypher를 사용하여 관계를 추가하려는 경우 배열 속성을 업데이트하십시오.neo4j 배열 속성이 존재하는 경우

MATCH (a:Term), (b:Term) 
WHERE a.Name = 'abc' AND b.Name = 'xyz' 
CREATE UNIQUE a-[r:gives]->b 
SET r.positive = coalesce(r.positive + (last(r.positive)/2),[0.125]) 
RETURN r; 

그러나, 유착 마지막으로, 나는 오류가 발생하여

Don't know how to Divide(LastFunction(Product(r,positive(14),true)),Literal(2)) `2` with `null` 

(기본적으로 새로운 관계가 만들어 질 때, 어쩌면 내가 잘 유착 사용하지 않는 r.positive 존재하지 않음) 이 쿼리를 작성하는 또 다른 방법이 있습니까?

감사

답변

3

유착은 괜찮지 만 r.positivenull 때, last(r.positive)도 null이며, 당신이 반 null을 나눌 수 없습니다.

예상 한대로 작동합니까? ([], r.positive) r.positive = 유착을 SET + 마지막 (유착 (r.positive, [0.25]))/2 :

MATCH (a:Term),(b:Term) 
WHERE a.name = 'abc' AND b.name = 'xyz' 
CREATE UNIQUE (a)-[r:gives]->(b) 
SET r.positive = 
    CASE WHEN NOT (HAS (r.positive)) 
    THEN [0.125] 
    ELSE r.positive + LAST(r.positive)/2 END 
RETURN r 
+0

네, 그것은 내가 다른 방법을 사용하여 종료하지만,하지 – user2103008

관련 문제