2017-11-01 19 views
0

ノードまたはエッジのリストプロパティをインデックスで更新できるかどうかを知りたいです。Neo4Jでリストプロパティを設定および更新する方法は?

MATCH (t1:t)-[r1:o]->(a:a)<-[r2:o]-(t2:t) where r1.loc-r2.loc=-1 and r1.month=r2.month 
WITH t1,t2,count(t1) as c 
MERGE (t1)-[r:r]->(t2) 
ON CREATE SET r.weights = "empty array of size 12(months) with array[month]=c 
ON MATCH SET r.weights[month] = r.weights[month]+c 

私は1つのに似た何かを空の配列を設定し達成することができたとします

ON CREATE SET r.weights = reduce(a=[], i in range(0,month-1) | a + [0])+[c]+reduce(a=[], i in range(0,12-month) | a + [0]) 

しかし、リストのプロパティを更新するための最良の方法は何ですか?

ありがとうございます!

答えて

0

私は次のようにそれを解決するために管理:

MATCH (t1:t)-[r1:o]->(a1:a)<-[r2:o]-(t2:t) where r1.loc-r2.loc=-1 and r1.month=r2.month 

WITH t1,r1,t2,r2,count(t1) as c 

MERGE (t1)-[r:r]->(t2) 

ON CREATE SET r.weights = reduce(a=[], i in range(0,r1.month-2) | a + [0])+[c]+reduce(a=[], i in range(0,11-r1.month) | a + [0]) 

ON MATCH SET r.weights = reduce(a=[], e in r.weights[0..r1.month-1]+[r.weights[r1.month-1]+c]+r.weights[r1.month..13] |a+e) 
return t1,t2,c,r 
関連する問題