Neo4j中的重复关系

时间:2018-09-28 23:47:51

标签: neo4j cypher

为什么这会创建两个关系而不是一个?

MATCH (a:Person{name:'Barack'}), (b:Person{name:'Raback'})
CREATE (a)-[r:SHAKES_HANDS_WITH{id:toString(rand())}]->(b)
RETURN r

(仅为演示目的添加了随机数“ id”。)

1 个答案:

答案 0 :(得分:1)

您可能有2个Person节点,它们具有相同的name(“ Barack”或“ Raback”)。

假设另一个name仅具有一个节点,则MATCH子句将产生2行-这将导致CREATE子句执行两次。

要验证这是否是您的情况,此查询将向您显示每个名称有多少个节点:

MATCH (a:Person)
WHERE a.name IN ['Barack', 'Raback']
RETURN a.name, COUNT(a) as nodeCount