Neo4j的列表与它的所有节点的父性
问题描述:
假设我有这个模型的Neo4j:Neo4j的列表与它的所有节点的父性
(n2) -> (n3)-> (n9)
/\
|
(n4)<-(n1)->(n5)->(n6)
| |
\/ \/
(n7) (n8)
所有节点都firstname
和lastname
性能。 是否有任何cypher列出所有节点与它的父母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"
}
}
}
答
当然,你可以试试这个,假设这些都是: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