【问题标题】:Neo4j: Match APOC path using one node as optional in the specified pathNeo4j:在指定路径中使用一个节点作为可选节点匹配 APOC 路径
【发布时间】:2018-08-07 17:32:46
【问题描述】:

我在我的图表上使用以下 neo4j 密码查询:

MATCH (start:N1{id:'xyz'})
CALL apoc.path.expandConfig(start, {sequence:'N1, a>, N2, b>, N3, c>, 
N4', maxLevel:3}) YIELD path
RETURN path
ORDER BY length(path) DESC

现在我想将 N3 保留为可选。就像如果链接 N2-b->N3 不可用,它应该检查 N2-b->N4 等等。我知道我可以做两个单独的查询并检查。但是有没有办法让 N3 在这个查询本身中保持可选?

提前致谢!

【问题讨论】:

    标签: graph neo4j cypher neo4j-apoc


    【解决方案1】:

    不,目前这是不可能的。如果要使用不同的节点,这将起作用,因为您可以接受不同的标签代替节点(或任何节点标签,如果您不关心),但这里没有使用序列的方法其中定义序列中的节点/rels 的数量不是恒定的。

    【讨论】:

    • 嗯,像CALL apoc.path.expandConfig(start, {sequence:'N1, a>, N2, b>|c>, N3|N4, c>|d>, N4|N5', maxLevel:3}) YIELD path 这样的东西有用吗?
    • 如果每个级别有不同的标签和节点,如果第一个不存在,我们可以选择使用另一个而不是第一个? @InverseFalcon
    • 这可行,但请记住,它不会是一个完整路径或另一个(b>,N3,c>,N4 vs c>,N4,d> N5),所以你可能有 (b>, N4, c>, N4) 和其他这样的可能组合
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-18
    • 1970-01-01
    相关资源
    最近更新 更多