【问题标题】:If/else statement in foreach query in neo4jNeo4j 中 foreach 查询中的 if/else 语句
【发布时间】:2020-12-10 13:54:07
【问题描述】:

我想使用 foreach 循环复制图表中的每个节点。我尝试使用 if/else 语句来创建特定类型的节点 - (:Node) 如果 n:Node 具有“节点”标签,如果 r:Road 具有“道路标签”则 (:Road)。如何修复此查询?

MATCH p=((n:Node)-[:STARTS]-(r:Road)-[:ENDS]-(z:Node))
FOREACH (x in nodes(p) | 
WITH CASE head(labels(x)) 
WHEN 'Node' 
THEN
CREATE (:Node {name : x.name, subID : ID(x)})
ELSE 
CREATE (:Road {name : x.name, subID : ID(x)}))

【问题讨论】:

    标签: if-statement foreach neo4j


    【解决方案1】:

    你不需要做任何 FOREACH,你可以创建它们:

    MATCH p=((n:Node)-[:STARTS]-(r:Road)-[:ENDS]-(z:Node))
    CREATE (:Node {name : n.name, subID : ID(n)})
    CREATE (:Road {name : r.name, subID : ID(r)})
    

    【讨论】:

      猜你喜欢
      • 2017-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多