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
Neo4j 如何基于ID获取特定节点的所有父节点_Neo4j_Cypher - Fatal编程技术网

Neo4j 如何基于ID获取特定节点的所有父节点

Neo4j 如何基于ID获取特定节点的所有父节点,neo4j,cypher,Neo4j,Cypher,我想获取所有3级节点(下图中的4、5、6和7)及其关系及其父节点详细信息 在以下示例中: 如果我发送ID:7,那么我应该获得3和'1'的节点信息 如果我发送ID:4,那么我应该获得2和`1的节点信息 如何获取父节点详细信息?请帮忙 编辑: 我正在尝试查询节点、边和直接的父详细信息。我得到了节点和边,但对于父节点,我得到了一个大的节点列表。不知道为什么 Match(n)-[r]()可选匹配(父节点:ParentNodeType)因此,如果您想获取父节点的所有节点,请使用下面的查询 Match

我想获取所有3级节点(下图中的4、5、6和7)及其关系及其父节点详细信息 在以下示例中:

  • 如果我发送
    ID:7
    ,那么我应该获得
    3
    和'1'的节点信息
  • 如果我发送
    ID:4
    ,那么我应该获得
    2
    和`1的节点信息

如何获取父节点详细信息?请帮忙

编辑: 我正在尝试查询节点、边和直接的父详细信息。我得到了节点和边,但对于父节点,我得到了一个大的节点列表。不知道为什么


Match(n)-[r]()可选匹配(父节点:ParentNodeType)因此,如果您想获取父节点的所有节点,请使用下面的查询

Match (n)-[r]-() OPTIONAL MATCH (parent:ParentNodeType)<-[r1*]-(child)  return n,r,COLLECT(parent) as parent

Match(n)-[r]()可选匹配(父:ParentNodeType)这是一个典型的路径查询。如果将其链接到子路径和根路径,则只需检索单个路径。下面我假设您将
myid
作为参数传递,并且您已经使用
:HAS_CHILD
关系链接了节点

// the path pattern
MATCH path=(root)-[:HAS_CHILD*]->(child)  
// limiting the search
WHERE NOT ()-[:HAS_CHILD]->(root)
      AND child.ID = $myid

//returning the results
RETURN path

or 

// return the IDs, except the last one, because it is the node you started from
UNWIND nodes(path)[..-1] AS node
RETURN node.ID AS parent

您能否显示您正在尝试的确切查询。您是否有父节点、子节点和两个不同的节点,它们之间的关系名称是什么?我已经更新了这个问题,希望它现在有意义。我认为这应该可行。您是否尝试过此查询?使用此查询得到的结果是什么?如果您看到我更新的问题,我不会传递任何id。我想获取所有3级节点及其关系及其父节点详细信息
MATCH (p)<-[r*3]-(c)  return p,r,c
// the path pattern
MATCH path=(root)-[:HAS_CHILD*]->(child)  
// limiting the search
WHERE NOT ()-[:HAS_CHILD]->(root)
      AND child.ID = $myid

//returning the results
RETURN path

or 

// return the IDs, except the last one, because it is the node you started from
UNWIND nodes(path)[..-1] AS node
RETURN node.ID AS parent