使用普通 Cypher 从字符串列表创建节点路径
Create a path of nodes from a list of strings using plain Cypher
仅使用 Cypher 语言,基于字符串列表,例如 [ "A", "B", "C" ],我想创建以下定向路径:
(n1:Test {ps: "A"}) -[:NEXT]-> (n2:Test {ps: "B"}) -[:NEXT}-> (n3:Test {ps:"C"})
输入列表可以是任意长度。
一些节点和关系可以已经存在于图中,因此可以重复使用它们。
应该这样做
WITH ["A","B","C"] AS nodeNames
WITH REDUCE(arr=[], i IN RANGE(0,size(nodeNames)-2) |
arr
+[[nodeNames[i],nodeNames[i+1]]]
) AS pairs
UNWIND pairs AS pair
WITH pair[0] AS from, pair[1] AS to
MERGE (n:Test {ps:from})
MERGE (m:Test {ps:to})
MERGE (n)-[:NEXT]->(m)
RETURN n,m
仅使用 Cypher 语言,基于字符串列表,例如 [ "A", "B", "C" ],我想创建以下定向路径:
(n1:Test {ps: "A"}) -[:NEXT]-> (n2:Test {ps: "B"}) -[:NEXT}-> (n3:Test {ps:"C"})
输入列表可以是任意长度。
一些节点和关系可以已经存在于图中,因此可以重复使用它们。
应该这样做
WITH ["A","B","C"] AS nodeNames
WITH REDUCE(arr=[], i IN RANGE(0,size(nodeNames)-2) |
arr
+[[nodeNames[i],nodeNames[i+1]]]
) AS pairs
UNWIND pairs AS pair
WITH pair[0] AS from, pair[1] AS to
MERGE (n:Test {ps:from})
MERGE (m:Test {ps:to})
MERGE (n)-[:NEXT]->(m)
RETURN n,m