Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph Neo4j获取1阶节点之间的边_Graph_Neo4j_Cypher_Graph Databases - Fatal编程技术网

Graph Neo4j获取1阶节点之间的边

Graph Neo4j获取1阶节点之间的边,graph,neo4j,cypher,graph-databases,Graph,Neo4j,Cypher,Graph Databases,假设我有定义为A->B,A->D,C->A,B->C,B->D的图关系。我需要在Neo4j中得到以下子图- 获取节点的所有一级连接(indegree或outdegree),即对于节点a,它将是B、C、D 获取这些1阶节点之间的所有边。因为B,C,D是一阶连接,所以边应该是B->C,B->D 关于第一部分,我有以下疑问- MATCH (s:Node)->(d:Node) WHERE s.name = 'A' OR d.name = 'A' 我无法在同一查询中获取数据的第二部分。是否需要遍

假设我有定义为A->B,A->D,C->A,B->C,B->D的图关系。我需要在Neo4j中得到以下子图-

  • 获取节点的所有一级连接(indegree或outdegree),即对于节点a,它将是B、C、D
  • 获取这些1阶节点之间的所有边。因为B,C,D是一阶连接,所以边应该是B->C,B->D
  • 关于第一部分,我有以下疑问-

    MATCH (s:Node)->(d:Node) 
    WHERE s.name = 'A' OR d.name = 'A'
    

    我无法在同一查询中获取数据的第二部分。是否需要遍历所有节点?

    这是一个简单的模式,表示从节点开始路径,然后转到它旁边的节点,然后其中一个可以返回到起始节点:

    MATCH (A:Node {name:'A'}) WITH A
    MATCH (A)--(FD1:Node)-[r]-(FD2:Node)--(A) 
      WHERE ID(FD1) > ID(FD2)
    RETURN FD1, r, FD2
    

    请记住,您不能指定关系的方向。

    为什么使用ID(FD1)>ID(F2)子句?@YashveerRana删除由于关系未定向而出现的重复项。