2017-05-14 49 views
0

假設我有這個模型的Neo4j: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

當然,你可以試試這個,假設這些都是: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 
相關問題