为了表达密码中的条件,我仍在使用以下技巧:
FOREACH(ignoreMe IN CASE WHEN //Put conditions here// THEN [1] ELSE [] END |
//Put instruction here// )
我已经使用了很长一段时间了。现在有更好的解决方案吗?下一个稳定版本会有吗?
编辑: 我指的是不能使用MATCH / WHERE模式的情况。 举个例子 : Create nodes and relations conditionally when loading nodes from csv in Neo4j
或https://stackoverflow.com/search?q=FOREACH%28ignoreMe+IN+CASE+WHEN
答案 0 :(得分:0)
我不知道你会考虑多少好,但接近LOAD CSV
的另一种方法是:
LOAD CSV WITH HEADERS from "file:/testfile.csv" as row
WHERE trim(row.b) = 'truck'
MERGE (p:Truck {vehicleType: row.a}));
LOAD CSV WITH HEADERS from "file:/testfile.csv" as row
WHERE trim(row.b) = 'car'
MERGE (p:Car {vehicleType: row.a}));
解析CSV文件并不需要花费太多时间(至少相对于查询而言),所以两次执行它不应该太大。
另一种选择是使用neo4j-import
命令(http://neo4j.com/docs/stable/import-tool.html)。您可能需要修改CSV文件,但导入速度要快得多。此外,这不适用于数据库的增量更新。 neo4j-import
每次运行时都会从头开始创建一个新的数据库(这是为什么它可以如此快速的一部分)