如何在Neo4j中检查节点是否完全连接

时间:2018-04-20 23:08:46

标签: neo4j

我在Neo4j(第一次使用它)中有大约10个不同节点的图表,这些节点以各种方式连接。并非所有节点都相互连接,因为有些节点最多有6个或7个邻居,而有些节点只有1.我会编写/使用什么查询来检查从NodeA到NodeB的路径是否存在?它不必是最短的路径,只要路径存在即可。

除此之外,有没有办法计算谁拥有最多或最少的邻居?感谢大家提前帮助。

1 个答案:

答案 0 :(得分:1)

  1. 如果节点之间至少有一条路径,则返回Foo个节点ab。 (如果有很多路径或很长的路径,这种长度无限长的路径查询可能需要很长时间或耗尽内存。)

    MATCH (a:Foo {id: 'a'}), (b:Foo {id: 'b'})
    WHERE (a)-[*]-(b)
    RETURN a, b;
    
  2. 返回ab之间的所有路径。 (此查询可能需要比上一个查询更多的时间和内存,因为它将尝试返回所有匹配的路径。)

    MATCH path=(a:Foo {id: 'a'})-[*]-(b:Foo {id: 'b'})
    RETURN path;
    
  3. 按降序返回具有最多邻居的10个节点:

    MATCH (n)--()
    WITH n, COUNT(*) AS c
    RETURN n
    ORDER BY c DESC
    LIMIT 10;