Noe4j Cypher - 条件陈述

时间:2015-11-03 15:36:04

标签: neo4j cypher

为了表达密码中的条件,我仍在使用以下技巧:

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

1 个答案:

答案 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每次运行时都会从头开始创建一个新的数据库(这是为什么它可以如此快速的一部分)