【问题标题】:Get nodes BETWEEN two nodes获取两个节点之间的节点
【发布时间】:2015-05-05 05:27:25
【问题描述】:

如何在 Neo4j 中获取两个节点之间的可变长度路径上的节点,独占?

例子

N1 -RELATIONSHIP-> N2 -RELATIONSHIP-> N3 -RELATIONSHIP-> N4

我想要 N2 和 N3

我不知道路径的长度,我只知道起始节点

【问题讨论】:

    标签: neo4j


    【解决方案1】:
    Match p= (n1)-[r:RELATIONSHIP*]->(n4) return filter(x IN nodes(p) 
                  WHERE x<>n1 AND x<>n4) AS pathNodes
    

    试试这个

    【讨论】:

    • 对不起,我要提一下,第一个和最后一个节点之间的节点数量是可变的
    • @Lamoni 您应该使用该信息更新您的问题(并且不要输入 EditUpdate 当您这样做时,我们有编辑历史)。
    • 只要你知道 n1 和 n4 是什么,上述内容适用于 n1 和 n4 之间的任意数量的节点
    【解决方案2】:

    你可以像这样获取路径中的所有节点

    MATCH p=(n1)-->(b)-->(n4)
    RETURN filter(x IN nodes(p) 
              WHERE id(x) <> id(n1) AND id(x) <>id(n4)) AS allNodes
    

    这是参考文档http://neo4j.com/docs/stable/query-functions-collection.html

    【讨论】:

    • 我怎样才能使用它来不在该列表中获取 n1 和 n4 ?谢谢。此外,路径中可能有可变数量的 N
    • 查询中的 (b) 是什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-19
    • 1970-01-01
    • 2023-03-24
    • 2021-10-20
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    相关资源
    最近更新 更多