在Cypher QL中,循环遍历JSON数组时,可以使用UNWIND子句将数组展开为多行,并在UNWIND子句后面加上WITH子句来处理重复节点。以下是一个示例代码:
WITH '[{"name": "John", "age": 25}, {"name": "Jane", "age": 30}]' as array
UNWIND apoc.convert.fromJsonList(array) as item
MERGE (n:Person {name: item.name})
SET n.age = item.age
在上述代码中,我们首先将JSON数组赋值给变量array。然后使用apoc.convert.fromJsonList函数将其转换为Cypher中的列表。接着使用UNWIND子句将列表展开为多行,并将每个元素赋值给变量item。使用MERGE子句来判断节点是否存在,如果不存在则创建一个新的节点,并使用SET子句设置节点的属性。
这样,即使在JSON数组中有重复的节点,也不会在Cypher图数据库中创建重复的节点。