【问题标题】:Noe4j Cypher - conditional statementsNoe4j Cypher - 条件语句
【发布时间】:2015-11-03 15:36:03
【问题描述】:

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

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

【问题讨论】:

  • 我通常根据实际图中的数据来做条件;例如MATCH (a) where a.someCondition = 1 WITH a (do something else)

标签: neo4j cypher


【解决方案1】:

我不知道你会考虑多好,但另一种接近 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 每次运行时都会从头开始创建一个新数据库(这也是它如此快速的部分原因)

【讨论】:

  • 感谢您的宝贵时间和回答。请注意,我不是在询问 CSV 导入,而是特别询问在 Cypher 中表达条件的少数情况下会变得棘手
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-25
  • 2013-03-09
  • 2011-05-29
  • 2012-07-16
相关资源
最近更新 更多