以下Cypher查询创建了cnt
属性,并在我第一次运行时将其全部设置为0。精确查询第二次运行将更新cnt
属性。是否可以为加载时添加的每个关系增加节点cnt
而不运行两次?
LOAD CSV WITH HEADERS FROM "file:///graph_data.csv" AS row
MERGE (t1:Term {word:row.term1})
MERGE (t2:Term {word:row.term2})
WITH t1, t2, row
MERGE (t1)-[:TOGETHER {id:row.id}]-(t2)
ON MATCH SET
t1.cnt = t1.cnt+1,
t2.cnt = t2.cnt+1
ON CREATE SET
t1.cnt=0,
t2.cnt=0
RETURN t1,t2
答案 0 :(得分:1)
以下查询查找与每个节点关联的计数(关系数)。这似乎比将计数存储为属性更好。
MATCH (t:Term), (s:Term)
WHERE t <> s AND (t)-[:TOGETHER]-(s)
RETURN t.word, COUNT((t)-[:TOGETHER]-(s));
答案 1 :(得分:0)
您可能根本不需要存储和维护cnt
属性。
例如,要找出特定的TOGETHER
有多少Term
个关系:
MATCH (t:Term {word: 'cat'})
RETURN COUNT((t)-[:TOGETHER]-()) AS cnt;