【问题标题】:How do I construct a Neo4j Cypher query that looks for nodes that have only links to a restricted list of nodes?如何构建一个 Neo4j Cypher 查询来查找仅链接到受限节点列表的节点?
【发布时间】:2021-12-01 03:30:34
【问题描述】:

我需要构建一个 Cypher 查询来查找具有指向其他节点的特定链接子集的节点。即,它排除了与指定列表之外的节点有任何链接的节点。例如,考虑以下节点/边:

(a)->(d)
(a)->(e)
(a)->(f)

(b)->(d)    
(b)->(e)

(c)->(d)    

我如何进行查询,例如,返回任何与 (d) 和/或 (e) 有链接但没有别的节点的节点?即,(a) 将被排除在结果之外,因为它也链接到 (f),但 (b) 和 (c) 将包含在结果中。

【问题讨论】:

    标签: filter neo4j cypher match


    【解决方案1】:

    您可以将候选节点的邻居列表与子集中的节点列表进行比较。对于您的情况,所有邻居都应该在子集中。 (f) 不是

    WITH [d,e] AS subset
    MATCH (n)
    WHERE ALL(neighbour IN [(n)-->(m) | m] WHERE neighbour IN subset)
    RETURN n
    

    【讨论】:

    • 谢谢!这帮助很大。
    • @richardjones yw。如果它是您正在寻找的,请接受答案。
    • 有点新手。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2018-11-17
    • 2020-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多