我想通过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
基本上我有一些节点具有相同的标题。我希望他们通过与列表中的其他节点建立子关系来共同组成一个同一标题组的元素之一。
答案 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
和未展开的节点之间创建所需的关系。