假设我在neo4j中有这个模型:
(n2) -> (n3)-> (n9)
/\
|
(n4)<-(n1)->(n5)->(n6)
| |
\/ \/
(n7) (n8)
所有节点都有firstname
和lastname
属性。
是否有任何密码可以列出所有节点的父节点firstname
和lastname
。
像这样:
{
{
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"
}
}
}
答案 0 :(得分:1)
当然,你可以试试这个,假设这些都是:N个节点。
MATCH (n:N)
OPTIONAL MATCH (parent)-->(n)
RETURN collect(n {.*, parent}) as nodes
这使用每个n
节点的地图投影来显示其属性,以及父节点的属性(如果存在)。如果您只需要firstname
和lastname
属性,那么您可以在地图投影中明确列出它们,如下所示:
MATCH (n:N)
OPTIONAL MATCH (parent)-->(n)
RETURN collect(n {n.firstname, n.lastname, parent {parent.firstname, parent.lastname}}) as nodes