【问题标题】:Neo4j list all nodes with it's parent propertiesNeo4j 列出所有节点及其父属性
【发布时间】:2017-10-13 04:27:23
【问题描述】:

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

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

所有节点都有firstnamelastname 属性。 是否有任何密码可以列出所有节点及其父节点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" 
     }
  }
}

【问题讨论】:

    标签: neo4j cypher graph-databases


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-19
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多