Neo4j-加载CSV和链关系
我想加载一个csv,一个有序事件的时间线来创建一个节点列表,但是我在创建链接两行的:下一个关系时遇到了问题Neo4j-加载CSV和链关系,neo4j,cypher,Neo4j,Cypher,我想加载一个csv,一个有序事件的时间线来创建一个节点列表,但是我在创建链接两行的:下一个关系时遇到了问题 LOAD CSV WITH HEADERS FROM "file:////events.csv" AS row merge (:Event{id:row.id})-[:NEXT]-> ??? (:Event {id:row[+1].id) 我认为一种方法是在CSV中有一列指向下一行id。以下查询假设节点已经存在。如果还希望根据需要创建节点,请将MATCH替换为MERGE 备选案文1
LOAD CSV WITH HEADERS FROM "file:////events.csv" AS row
merge (:Event{id:row.id})-[:NEXT]-> ??? (:Event {id:row[+1].id)
我认为一种方法是在CSV中有一列指向下一行id。以下查询假设节点已经存在。如果还希望根据需要创建节点,请将MATCH
替换为MERGE
备选案文1:
您可以让CSV文件中的每一行包含需要在单个链中按顺序连接在一起的节点的可变数量的节点ID。在这种情况下,CSV文件不应有标题行
LOAD CSV FROM "file:///events.csv" AS ids
UNWIND [i IN RANGE(1, SIZE(ids)-1) | {a: ids[i-1], b: ids[i]}] AS pair
MATCH (a:Event {id: pair.a})
MATCH (b:Event {id: pair.b})
MERGE (a)-[:NEXT]->(b)
备选案文2:
您可以让CSV文件中的每一行仅包含一对需要按顺序连接在一起的节点ID。在这种情况下,CSV文件可以有一个标题行,如本例所示(使用a
和b
作为标题)
以下查询假定节点已经存在。如果还希望根据需要创建节点,请将MATCH
替换为MERGE
备选案文1:
您可以让CSV文件中的每一行包含需要在单个链中按顺序连接在一起的节点的可变数量的节点ID。在这种情况下,CSV文件不应有标题行
LOAD CSV FROM "file:///events.csv" AS ids
UNWIND [i IN RANGE(1, SIZE(ids)-1) | {a: ids[i-1], b: ids[i]}] AS pair
MATCH (a:Event {id: pair.a})
MATCH (b:Event {id: pair.b})
MERGE (a)-[:NEXT]->(b)
备选案文2:
您可以让CSV文件中的每一行仅包含一对需要按顺序连接在一起的节点ID。在这种情况下,CSV文件可以有一个标题行,如本例所示(使用a
和b
作为标题)