首页 文章

Neo4j用它的父属性列出所有节点

提问于
浏览
0

假设我在neo4j中有这个模型:

(n2) -> (n3)-> (n9)
           /\
           |
   (n4)<-(n1)->(n5)->(n6)
    |            |
    \/           \/ 
    (n7)         (n8)

所有节点都具有 firstnamelastname 属性 . 是否有任何cypher列出所有节点的父节点 firstnamelastname . 像这样的东西:

{ 
  {
     firstname: "n1 name",
     lastname: "n1 last name" 
     parent: {}
  }, 
  {
     firstname: "n2 name",
     lastname: "n2 last name" 
     parent: {
         firstname: "n1 name",
         lastname: "n1 last name" 
     }
  }, 
  {
     firstname: "n3 name",
     lastname: "n3 last name" 
     parent: {
         firstname: "n2 name",
         lastname: "n2 last name" 
     }
  }, 
   .
   .
   .
  {
     firstname: "n9 name",
     lastname: "n9 last name" 
     parent: {
         firstname: "n3 name",
         lastname: "n3 last name" 
     }
  }
}

1 回答

  • 1

    当然,你可以试试这个,假设这些都是:N个节点 .

    MATCH (n:N)
    OPTIONAL MATCH (parent)-->(n)
    RETURN collect(n {.*, parent}) as nodes
    

    这使用每个 n 节点的 Map 投影来显示其属性,以及父节点的属性(如果存在) . 如果您只需要 firstnamelastname 属性,那么您可以在 Map 投影中明确列出它们,如下所示:

    MATCH (n:N)
    OPTIONAL MATCH (parent)-->(n)
    RETURN collect(n {n.firstname, n.lastname, parent {parent.firstname, parent.lastname}}) as nodes
    

相关问题