neo4j添加关系时的增量计数

时间:2018-07-11 03:46:54

标签: neo4j cypher increment

以下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

2 个答案:

答案 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;