Neo4j - 如何 merge/join parent -> children 树结构节点
Neo4j - How to merge/join parent -> children tree structure nodes
我有一个树结构(项目)-[:IS_PARENT_OF]->(projectChild)
一个项目可以有多个children,我想做的是创建一个包含parent的所有children的虚拟节点的查询。
所以节点会有这样的数据:
parent: "project 1",
children:['cohort', 'protocol', etc...]
我试过这个查询
MATCH (p:Project)-[:IS_PARENT_OF]->(c)
CALL apoc.create.vNode(['Project'], {name: p.name, children: [c.name]}) YIELD node
RETURN node
但是我只有一个child:
{
"identity": -32,
"labels": [
"Project"
],
"properties": {
"name": "project 1",
"children": [
"Experimental design"
]
}
}
有人知道如何在我的 vNode 中获得多个 children 吗?
由于您似乎已经尝试过一种模式理解,这可能是您需要的:
MATCH (p:Project)
CALL apoc.create.vNode(
['Project'],
{
name: p.name,
children: [(p)-[:IS_PARENT_OF]->(c) | c.name]
}
) YIELD node
RETURN node
这将 return 一个空数组 []
以防项目没有子项。
我有一个树结构(项目)-[:IS_PARENT_OF]->(projectChild)
一个项目可以有多个children,我想做的是创建一个包含parent的所有children的虚拟节点的查询。
所以节点会有这样的数据:
parent: "project 1",
children:['cohort', 'protocol', etc...]
我试过这个查询
MATCH (p:Project)-[:IS_PARENT_OF]->(c)
CALL apoc.create.vNode(['Project'], {name: p.name, children: [c.name]}) YIELD node
RETURN node
但是我只有一个child:
{
"identity": -32,
"labels": [
"Project"
],
"properties": {
"name": "project 1",
"children": [
"Experimental design"
]
}
}
有人知道如何在我的 vNode 中获得多个 children 吗?
由于您似乎已经尝试过一种模式理解,这可能是您需要的:
MATCH (p:Project)
CALL apoc.create.vNode(
['Project'],
{
name: p.name,
children: [(p)-[:IS_PARENT_OF]->(c) | c.name]
}
) YIELD node
RETURN node
这将 return 一个空数组 []
以防项目没有子项。