假设我在 a 中有下表csv。
elementID | groupID | sequence
abc | A | 0
dcv | A | 1
asd | B | 3
ccc | B | 2
abc | B | 4
我已经Element在 Neo4j 中创建了节点(sequence不是节点的属性),其属性为 key elementID。
由此csv,我需要创建从属于一个组的每个Element节点到属于同一组的另一个元素的关系,该元素具有下一个sequence数字。
使用上面的数据,我需要创建一个关系 from abcto dcv(A例如标记), from asdto abc(labeled B)和 from cccto再次asd标记B。
我是这样想的查询:
LOAD CSV WITH HEADERS FROM "file:///file.csv" AS row
WITH row
MATCH (from:Element {elementID : row.elementID})
MATCH (to:Element {...})
MERGE (from)-[r:row.groupID]->(t)
问题是我不知道如何处理MATCH第二个节点,因为在图中我需要nodeID当前row变量的 while 我只有from节点的数据。
我该怎么做?有没有办法使用第二个变量来表示csv要用于第二个的另一个条目MATCH?
在最后一种情况下,我需要对其表达条件,例如:
WHERE row2.sequence = row.sequence+1 AND row2.groupID = row.groupID