Neo4j如何在列表中的neo4j中创建节点关系?

时间:2018-02-09 10:16:15

标签: neo4j cypher

我想通过Neo4j中的关系将列表的第一个节点与列表中的其他节点连接起来。

我的方法是:

MATCH (n)
WITH n.title AS id, COLLECT(n) as nodes
where size(nodes)>1 ,COALESCE(COLLECT(n)) as firstNode  
UNWIND TAIL(nodes) as x
CREATE (firstNode)-[r:Child]->(x)
return r

基本上我有一些节点具有相同的标题。我希望他们通过与列表中的其他节点建立子关系来共同组成一个同一标题组的元素之一。

1 个答案:

答案 0 :(得分:1)

试一试:

MATCH (n)
WITH n.title AS id, collect(n) as nodes
WHERE size(nodes) > 1
WITH nodes[0] as firstNode, nodes[1..] as otherNodes
UNWIND otherNodes as other
CREATE (firstNode)-[r:Child]->(other)

在第二个WITH中,我将第一个节点和一个列表从第二个节点提取到列表的末尾。然后我展开otherNodes列表并在firstNode和未展开的节点之间创建所需的关系。