Neo4j 从一个节点到另一个节点的若干关系

Neo4j 从一个节点到另一个节点的若干关系,neo4j,Neo4j,我是neo4j的新手。我有一个.csv文件,两列之间用“,”分隔。第一列包含名字,第二列包含姓氏: Lname,Fname Brown,Helen Right,Eliza Green,Helen Pink,Kate Yellow,Helen 我想为Lname列创建节点,为Fname列创建节点。对于具有相同Fname的行,我希望将Lname连接到相应的Fname。例如,我希望有一个“Helen”节点,其中三个节点“Brown”、“Green”和“Yellow”连接到“Helen”。我还想将“Fn

我是neo4j的新手。我有一个.csv文件,两列之间用“,”分隔。第一列包含名字,第二列包含姓氏:

Lname,Fname
Brown,Helen
Right,Eliza
Green,Helen
Pink,Kate
Yellow,Helen
我想为Lname列创建节点,为Fname列创建节点。对于具有相同Fname的行,我希望将Lname连接到相应的Fname。例如,我希望有一个“Helen”节点,其中三个节点“Brown”、“Green”和“Yellow”连接到“Helen”。我还想将“Fname”节点连接到“中心节点”。我编写了以下代码:

LOAD CSV WITH HEADERS FROM 'file:///names.csv' AS row
WITH row.Fname AS first, row.Lname AS last
MERGE (p:la {last: last})
MERGE (o:fi {first: first})
MERGE (c:central {name: "central node"})
MERGE (c)-[r:CONTAINS {first:first}]->(o)-[rel:CONTAINS {first: first}]->(p)
RETURN count(o)
当我运行此代码并使用此查询显示输出时:

MATCH (c:central)-[r:CONTAINS]->(o:fi)-[rel:CONTAINS]->(p:la)
RETURN c, r, o, rel, p
我将此图形作为输出接收:


如你所见,根据姓氏的数量,我与名字的关系数量相同,例如,我有3个从“中心节点”到“海伦”的关系,但我只想要一个从“中心节点”到“海伦”的关系。这里出了什么问题?

答案在最后的
MERGE
子句中

MERGE (c)-[r:CONTAINS {first:first}]->(o)-[rel:CONTAINS {first: first}]->(p)
Neo4j将采用整个图案,并确保其独特性。因为每次调用它(由于姓氏的改变),整个东西都被创建了。如果希望从中心节点到第一个名称节点有一个单一的关系,则需要将其拆分为两个单独的部分。使用以下命令,第一个
合并将只创建一次中心第一个关系

MERGE (c)-[r:CONTAINS {first:first}]->(o)
MERGE (o)-[rel:CONTAINS {first: first}]->(p)

谢谢,这解决了我的问题,但是我可以问一下为什么所有节点的颜色都是灰色的吗?我想根据节点的标签更改节点的颜色。酷。如果您查看特定Neo4j浏览器窗格的顶部,您将看到其中的标签。单击您想要的,然后查看同一窗格的底部。在窗格底部,您可以选择特定标签的大小、颜色和颜色。当我们自动创建节点时,难道不可能实现这一点吗?(可能通过查询?)您可以在浏览器中键入
:style reset
,这将重置已做出的样式选择。您可以在文档中阅读有关浏览器样式的更多信息。。。