USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM "file:///path/to/file.csv" AS row
MERGE (a:Person{name: row.a})
WITH a,row
UNWIND split(row.b,',') AS other
MERGE (b:Person {name:other})
CREATE UNIQUE (a)-[:CONNECTED_TO]->(b);
WITH {d} AS json
UNWIND json AS doc
MERGE (a:Person{name: doc.a})
WITH doc, a
UNWIND doc.b AS other
MERGE (b:Person{name:other})
CREATE UNIQUE (a)-[:CONNECTED_TO]->(b);
您可能需要考虑将JSON转换为CSV(使用类似于jq)的方法,然后可以使用^{} Cypher工具进行导入。
LOAD CSV
针对数据导入进行了优化,因此使用此方法将获得更好的性能。在您的示例中,LOAD CSV
脚本如下所示:您的JSON转换为CSV:
首先创建唯一性约束/索引。这将确保只为任何“名称”创建一个节点,并创建索引以提高查找性能。在
^{pr2}$可以有效地使用上述cyp文件导入CSV数据:
其他选项
另一个选择是在Cypher查询中使用JSON作为参数,然后使用
UNWIND
遍历JSON数组的每个元素。在尽管非常大的JSON数组可能存在一些性能问题。请参阅这个here和here的一些示例。在
相关问题 更多 >
编程相关推荐