我有两个节点数组
TYPE1 : [Node1, Node2, ...NodeN]
TYPE2 : [OtherNode1, OtherNode2....OtherNodeN]
Run Code Online (Sandbox Code Playgroud)
我正在尝试将每个TYPE1节点连接到其对应的TYPE2节点,如下所示.
(Node1) -[:RELATED_TO] -> (OtherNode1)
Run Code Online (Sandbox Code Playgroud)
这是一个简单的一对一通信.
我用了
MATCH (x:TYPE1),(y:TYPE2)
with x, y
with COLLECT(x) as n1, COLLECT(y) as n2
FOREACH(i in RANGE(0, 9) |
CREATE (n1[i])-[:RELATED_TO]->(n2[i])
)
Run Code Online (Sandbox Code Playgroud)
失败了
错误:无效输入'[':预期标识符字符,节点标签,属性映射,')'或关系模式(第4行,第21列)
我有两个问题.
我在查询中做错了什么?
完成我正在做的事情的最佳方法是什么?
非常感谢!
请考虑以下示例数据:
FOREACH (i IN range(1,10) | CREATE (:TYPE1), (:TYPE2))
Run Code Online (Sandbox Code Playgroud)
因为您对通过任何属性订购集合不感兴趣,所以您只需按照找到它们的顺序加入节点MATCH.以下查询将执行(我认为)您尝试做的事情,尽管它不够优雅:
MATCH (x:TYPE1), (y:TYPE2)
WITH COLLECT(DISTINCT x) AS n1, COLLECT(DISTINCT y) AS n2
WHERE LENGTH(n1) = LENGTH(n2)
FOREACH (i IN RANGE(0, LENGTH(n1) - 1) |
FOREACH (node IN [n1[i]] |
FOREACH (othernode IN [n2[i]] |
MERGE (node)-[:RELATED_TO]-(othernode)
)
)
)
Run Code Online (Sandbox Code Playgroud)
浏览器视图后查询:

| 归档时间: |
|
| 查看次数: |
655 次 |
| 最近记录: |