Neo4j返回一个节点,其中节点数组作为属性数组或单独数组
我有四个节点-[belongTo]->(ContainerNode) 我希望json作为单个容器节点返回,其中包含链接到它的所有节点的数组。例如:Neo4j返回一个节点,其中节点数组作为属性数组或单独数组,neo4j,cypher,Neo4j,Cypher,我有四个节点-[belongTo]->(ContainerNode) 我希望json作为单个容器节点返回,其中包含链接到它的所有节点的数组。例如: "nodes": [ { "id": "240", "name":"MyNodeContainer", "Type": "ContainerNode" "SubNodes": [ { "id":
"nodes": [
{
"id": "240",
"name":"MyNodeContainer",
"Type": "ContainerNode"
"SubNodes": [
{
"id": "1",
"name":"MyNodeA",
"Type": "node"
},
{
"id": "2",
"name":"MyNodeB",
"Type": "node"
}
]
},
这看起来很简单,但我能得到的只是默认的所有节点都以相等的方式返回。我希望结果表明容器节点与其他节点是分开的。数组属性似乎最直观,但我也满足于两个列表——一个用于单节点容器,另一个用于包含的节点?它构建包含节点的集合,然后将其作为
ContainerNode
的属性返回
match (c:ContainerNode)<-[:BELONGS_TO]-(n:Node)
with c, collect({ id: id(n), name: n.name, type: labels(n)[0] }) as nodes
with { id: id(c), name: c.name, type: labels(c)[0], SubNodes: nodes } as containerNode
return {nodes: collect(containerNode) }
匹配(c:ContainerNode)