apoc 返回的路径变形为分组数据
apoc returned path morph into grouped data
这是示例图的屏幕截图:
样本图数据生成:
CREATE (r:Red {key:'someid'})
CREATE (t1:Teal)
CREATE (t2:Teal)
CREATE (t3:Teal)
CREATE (t4:Teal)
CREATE (t5:Teal)
CREATE (t6:Teal)
CREATE (r2:Red)
CREATE (b1:Blue)
CREATE (b2:Blue)
CREATE (b3:Blue)
CREATE (b4:Blue)
CREATE (f:FINAL_NODE)
CREATE (r)<-[:TO_ACTIVE_DRAFT]-(t1)
CREATE (r)<-[:TO_ACTIVE_DRAFT]-(t2)
CREATE (r)<-[:TO_ACTIVE_DRAFT]-(t3)
CREATE (r)<-[:TO_ACTIVE_DRAFT]-(t4)
CREATE (r)<-[:TO_ACTIVE_DRAFT]-(t5)
CREATE (r)<-[:TO_ACTIVE_DRAFT]-(t6)
CREATE (t1)<-[:TO_ATL]-(r2)
CREATE (t2)<-[:TO_ATL]-(r2)
CREATE (t3)<-[:TO_ATL]-(r2)
CREATE (t4)<-[:TO_ATL]-(r2)
CREATE (t5)<-[:TO_ATL]-(r2)
CREATE (t6)<-[:TO_ATL]-(r2)
CREATE (r2)<-[:TO_ACTIVE_DRAFT]-(b1)
CREATE (r2)<-[:TO_ACTIVE_DRAFT]-(b2)
CREATE (r2)<-[:TO_ACTIVE_DRAFT]-(b3)
CREATE (r2)<-[:TO_ACTIVE_DRAFT]-(b4)
CREATE (b1)-[:TO_FINAL]->(f)
CREATE (b2)-[:TO_FINAL]->(f)
CREATE (b3)-[:TO_FINAL]->(f)
CREATE (b4)-[:TO_FINAL]->(f)
如果我的查询是这样的:
MATCH (f:Red {key:'someid'})
CALL apoc.path.expand(f, '<TO_ACTIVE_DRAFT|<TO_ATL|TO_FINAL>', '>FINAL_NODE',-1,-1) yield path as p
RETURN p
在使用浏览器并查看 table 视图时,数据看起来像是 return 编辑为数组中的单一路径。所以数组中的数组。
[
[
{red},
{relationship},
{teal},
{relationship},
{red},
{relationship},
{blue},
{relationship},
{green}
],
[
{red},
{relationship},
{teal},
{relationship},
{red},
{relationship},
{blue},
{relationship},
{green}
],
etc
]
{} 是每个节点和关系的属性。
如果我用
RETURN 节点数(p)
它只是给了我一个没有深度的所有项目的列表,如果我尝试将大小或长度与路径一起使用,在这种情况下它们都是 5,并且没有给我单独的节点。
我真正想要的是能够重新创建图表的级别,因此理想情况下数据将 return 像这样编辑:
[
[
{red}
],[
{teal},
{teal},
{teal},
{teal},
{teal},
{teal}
],[
{red}
],[
{blue},
{blue},
{blue},
{blue},
{blue},
{blue},
{blue}
],[
{green}
]
]
这是否可能使用扩展函数,或者我是否需要弄清楚如何通过密码用标准模式做同样的事情 - 即 MATCH (r)-[:*]-(final)?
//几点说明:
可能有任意数量的路线和节点。所以在这个例子中它是红色,蓝绿色,红色,蓝色,绿色。它可以是红色、青色、红色、青色、红色、蓝色、绿色。可能只是红色、蓝色、绿色。
我正在使用 C# 和 neo4j 驱动程序,如果这对我可以获得的数据有影响 return 我从 C# 中的 returning 路径返回的响应示例
[{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":20,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":25,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":5,"Type":"TO_ACTIVE_DRAFT","StartNodeId":20,"EndNodeId":0,"Properties":{}},{"Id":11,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":20,"Properties":{}},{"Id":15,"Type":"TO_ACTIVE_DRAFT","StartNodeId":25,"EndNodeId":21,"Properties":{}},{"Id":19,"Type":"TO_FINAL","StartNodeId":25,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":20,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":24,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":5,"Type":"TO_ACTIVE_DRAFT","StartNodeId":20,"EndNodeId":0,"Properties":{}},{"Id":11,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":20,"Properties":{}},{"Id":14,"Type":"TO_ACTIVE_DRAFT","StartNodeId":24,"EndNodeId":21,"Properties":{}},{"Id":18,"Type":"TO_FINAL","StartNodeId":24,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":20,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":23,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":5,"Type":"TO_ACTIVE_DRAFT","StartNodeId":20,"EndNodeId":0,"Properties":{}},{"Id":11,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":20,"Properties":{}},{"Id":13,"Type":"TO_ACTIVE_DRAFT","StartNodeId":23,"EndNodeId":21,"Properties":{}},{"Id":17,"Type":"TO_FINAL","StartNodeId":23,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":20,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":22,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":5,"Type":"TO_ACTIVE_DRAFT","StartNodeId":20,"EndNodeId":0,"Properties":{}},{"Id":11,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":20,"Properties":{}},{"Id":12,"Type":"TO_ACTIVE_DRAFT","StartNodeId":22,"EndNodeId":21,"Properties":{}},{"Id":16,"Type":"TO_FINAL","StartNodeId":22,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":5,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":25,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":4,"Type":"TO_ACTIVE_DRAFT","StartNodeId":5,"EndNodeId":0,"Properties":{}},{"Id":10,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":5,"Properties":{}},{"Id":15,"Type":"TO_ACTIVE_DRAFT","StartNodeId":25,"EndNodeId":21,"Properties":{}},{"Id":19,"Type":"TO_FINAL","StartNodeId":25,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":5,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":24,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":4,"Type":"TO_ACTIVE_DRAFT","StartNodeId":5,"EndNodeId":0,"Properties":{}},{"Id":10,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":5,"Properties":{}},{"Id":14,"Type":"TO_ACTIVE_DRAFT","StartNodeId":24,"EndNodeId":21,"Properties":{}},{"Id":18,"Type":"TO_FINAL","StartNodeId":24,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":5,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":23,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":4,"Type":"TO_ACTIVE_DRAFT","StartNodeId":5,"EndNodeId":0,"Properties":{}},{"Id":10,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":5,"Properties":{}},{"Id":13,"Type":"TO_ACTIVE_DRAFT","StartNodeId":23,"EndNodeId":21,"Properties":{}},{"Id":17,"Type":"TO_FINAL","StartNodeId":23,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":5,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":22,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":4,"Type":"TO_ACTIVE_DRAFT","StartNodeId":5,"EndNodeId":0,"Properties":{}},{"Id":10,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":5,"Properties":{}},{"Id":12,"Type":"TO_ACTIVE_DRAFT","StartNodeId":22,"EndNodeId":21,"Properties":{}},{"Id":16,"Type":"TO_FINAL","StartNodeId":22,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":4,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":25,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":3,"Type":"TO_ACTIVE_DRAFT","StartNodeId":4,"EndNodeId":0,"Properties":{}},{"Id":9,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":4,"Properties":{}},{"Id":15,"Type":"TO_ACTIVE_DRAFT","StartNodeId":25,"EndNodeId":21,"Properties":{}},{"Id":19,"Type":"TO_FINAL","StartNodeId":25,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":4,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":24,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":3,"Type":"TO_ACTIVE_DRAFT","StartNodeId":4,"EndNodeId":0,"Properties":{}},{"Id":9,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":4,"Properties":{}},{"Id":14,"Type":"TO_ACTIVE_DRAFT","StartNodeId":24,"EndNodeId":21,"Properties":{}},{"Id":18,"Type":"TO_FINAL","StartNodeId":24,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":4,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":23,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":3,"Type":"TO_ACTIVE_DRAFT","StartNodeId":4,"EndNodeId":0,"Properties":{}},{"Id":9,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":4,"Properties":{}},{"Id":13,"Type":"TO_ACTIVE_DRAFT","StartNodeId":23,"EndNodeId":21,"Properties":{}},{"Id":17,"Type":"TO_FINAL","StartNodeId":23,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":4,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":22,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":3,"Type":"TO_ACTIVE_DRAFT","StartNodeId":4,"EndNodeId":0,"Properties":{}},{"Id":9,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":4,"Properties":{}},{"Id":12,"Type":"TO_ACTIVE_DRAFT","StartNodeId":22,"EndNodeId":21,"Properties":{}},{"Id":16,"Type":"TO_FINAL","StartNodeId":22,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":3,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":25,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":2,"Type":"TO_ACTIVE_DRAFT","StartNodeId":3,"EndNodeId":0,"Properties":{}},{"Id":8,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":3,"Properties":{}},{"Id":15,"Type":"TO_ACTIVE_DRAFT","StartNodeId":25,"EndNodeId":21,"Properties":{}},{"Id":19,"Type":"TO_FINAL","StartNodeId":25,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":3,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":24,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":2,"Type":"TO_ACTIVE_DRAFT","StartNodeId":3,"EndNodeId":0,"Properties":{}},{"Id":8,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":3,"Properties":{}},{"Id":14,"Type":"TO_ACTIVE_DRAFT","StartNodeId":24,"EndNodeId":21,"Properties":{}},{"Id":18,"Type":"TO_FINAL","StartNodeId":24,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":3,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":23,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":2,"Type":"TO_ACTIVE_DRAFT","StartNodeId":3,"EndNodeId":0,"Properties":{}},{"Id":8,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":3,"Properties":{}},{"Id":13,"Type":"TO_ACTIVE_DRAFT","StartNodeId":23,"EndNodeId":21,"Properties":{}},{"Id":17,"Type":"TO_FINAL","StartNodeId":23,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":3,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":22,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":2,"Type":"TO_ACTIVE_DRAFT","StartNodeId":3,"EndNodeId":0,"Properties":{}},{"Id":8,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":3,"Properties":{}},{"Id":12,"Type":"TO_ACTIVE_DRAFT","StartNodeId":22,"EndNodeId":21,"Properties":{}},{"Id":16,"Type":"TO_FINAL","StartNodeId":22,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":2,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":25,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":1,"Type":"TO_ACTIVE_DRAFT","StartNodeId":2,"EndNodeId":0,"Properties":{}},{"Id":7,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":2,"Properties":{}},{"Id":15,"Type":"TO_ACTIVE_DRAFT","StartNodeId":25,"EndNodeId":21,"Properties":{}},{"Id":19,"Type":"TO_FINAL","StartNodeId":25,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":2,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":24,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":1,"Type":"TO_ACTIVE_DRAFT","StartNodeId":2,"EndNodeId":0,"Properties":{}},{"Id":7,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":2,"Properties":{}},{"Id":14,"Type":"TO_ACTIVE_DRAFT","StartNodeId":24,"EndNodeId":21,"Properties":{}},{"Id":18,"Type":"TO_FINAL","StartNodeId":24,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":2,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":23,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":1,"Type":"TO_ACTIVE_DRAFT","StartNodeId":2,"EndNodeId":0,"Properties":{}},{"Id":7,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":2,"Properties":{}},{"Id":13,"Type":"TO_ACTIVE_DRAFT","StartNodeId":23,"EndNodeId":21,"Properties":{}},{"Id":17,"Type":"TO_FINAL","StartNodeId":23,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":2,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":22,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":1,"Type":"TO_ACTIVE_DRAFT","StartNodeId":2,"EndNodeId":0,"Properties":{}},{"Id":7,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":2,"Properties":{}},{"Id":12,"Type":"TO_ACTIVE_DRAFT","StartNodeId":22,"EndNodeId":21,"Properties":{}},{"Id":16,"Type":"TO_FINAL","StartNodeId":22,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":1,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":25,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":0,"Type":"TO_ACTIVE_DRAFT","StartNodeId":1,"EndNodeId":0,"Properties":{}},{"Id":6,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":1,"Properties":{}},{"Id":15,"Type":"TO_ACTIVE_DRAFT","StartNodeId":25,"EndNodeId":21,"Properties":{}},{"Id":19,"Type":"TO_FINAL","StartNodeId":25,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":1,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":24,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":0,"Type":"TO_ACTIVE_DRAFT","StartNodeId":1,"EndNodeId":0,"Properties":{}},{"Id":6,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":1,"Properties":{}},{"Id":14,"Type":"TO_ACTIVE_DRAFT","StartNodeId":24,"EndNodeId":21,"Properties":{}},{"Id":18,"Type":"TO_FINAL","StartNodeId":24,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":1,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":23,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":0,"Type":"TO_ACTIVE_DRAFT","StartNodeId":1,"EndNodeId":0,"Properties":{}},{"Id":6,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":1,"Properties":{}},{"Id":13,"Type":"TO_ACTIVE_DRAFT","StartNodeId":23,"EndNodeId":21,"Properties":{}},{"Id":17,"Type":"TO_FINAL","StartNodeId":23,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":1,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":22,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":0,"Type":"TO_ACTIVE_DRAFT","StartNodeId":1,"EndNodeId":0,"Properties":{}},{"Id":6,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":1,"Properties":{}},{"Id":12,"Type":"TO_ACTIVE_DRAFT","StartNodeId":22,"EndNodeId":21,"Properties":{}},{"Id":16,"Type":"TO_FINAL","StartNodeId":22,"EndNodeId":26,"Properties":{}}]}}]
[补充说明]
一个更具体的例子是,如果你要移动动物,你有一个出生来源,然后你有几个移动直到你到达市场。所以该图看起来像初始屏幕截图,其中红色节点是动物已移动到的特定位置,蓝绿色和蓝色是不同类型的时间表。但是,我唯一确定的信息是它当前所在的位置(红色节点),我想到达出生源(绿色节点)。它的移动次数和位置是可变的。它可能已经移动过一次,也可能已经移动过 x 次。我确实知道路径仅限于 3 个标记关系。因此,虽然我非常喜欢 apoc 过程的语法,但如果在获取该路径后我无法对其进行操作,那么也许我只需要执行类似
的操作
MATCH (f:Red {key:'someid'})
OPTIONAL MATCH (f)<-[:TO_ACTIVE_DRAFT|TO_ATL*]-()-[:SOURCE_FOR_INC]->(g:Green)
RETURN g
但对我来说,上面只会 return f 或 g 而不是路径,所以它必须是这样的:
MATCH (f:Red {key:'someid'})
p = OPTIONAL MATCH (f)<-[:TO_ACTIVE_DRAFT|TO_ATL*]-()-[:SOURCE_FOR_INC]->(g:Green)
RETURN p
我相信这会给我路径,但与 apoc 的情况相同,我无法将数据分组...
这个不使用 APOC 过程的查询(带有一些假设的节点标签)可能对您有用:
MATCH (f:Node {key:'someid'})
<-[:TO_ACTIVE_DRAFT]-(t:Teal)
<-[:ATL_TO_DRAFT]-(r:Red)
<-[:TO_ACTIVE_DRAFT]-(b:Blue)
-[:SOURCE_FOR_INC]->(g:Green)
RETURN COLLECT(DISTINCT f), COLLECT(DISTINCT t), COLLECT(DISTINCT r), COLLECT(DISTINCT b), COLLECT(DISTINCT g)
应该可以想出 Cypher 代码,但这需要一些努力,而且可能非常复杂。
您最好只取以下结果:
MATCH p=(f:Red {key:'someid'}<-[:TO_ACTIVE_DRAFT|TO_ATL*]-()-[:SOURCE_FOR_INC]->(g:Green)
RETURN p
并使用某种外部编程语言生成您想要的数据。
大多数时候,路径是人们想要的,所以 Cypher 就是为此而设计的。
这是示例图的屏幕截图:
样本图数据生成:
CREATE (r:Red {key:'someid'})
CREATE (t1:Teal)
CREATE (t2:Teal)
CREATE (t3:Teal)
CREATE (t4:Teal)
CREATE (t5:Teal)
CREATE (t6:Teal)
CREATE (r2:Red)
CREATE (b1:Blue)
CREATE (b2:Blue)
CREATE (b3:Blue)
CREATE (b4:Blue)
CREATE (f:FINAL_NODE)
CREATE (r)<-[:TO_ACTIVE_DRAFT]-(t1)
CREATE (r)<-[:TO_ACTIVE_DRAFT]-(t2)
CREATE (r)<-[:TO_ACTIVE_DRAFT]-(t3)
CREATE (r)<-[:TO_ACTIVE_DRAFT]-(t4)
CREATE (r)<-[:TO_ACTIVE_DRAFT]-(t5)
CREATE (r)<-[:TO_ACTIVE_DRAFT]-(t6)
CREATE (t1)<-[:TO_ATL]-(r2)
CREATE (t2)<-[:TO_ATL]-(r2)
CREATE (t3)<-[:TO_ATL]-(r2)
CREATE (t4)<-[:TO_ATL]-(r2)
CREATE (t5)<-[:TO_ATL]-(r2)
CREATE (t6)<-[:TO_ATL]-(r2)
CREATE (r2)<-[:TO_ACTIVE_DRAFT]-(b1)
CREATE (r2)<-[:TO_ACTIVE_DRAFT]-(b2)
CREATE (r2)<-[:TO_ACTIVE_DRAFT]-(b3)
CREATE (r2)<-[:TO_ACTIVE_DRAFT]-(b4)
CREATE (b1)-[:TO_FINAL]->(f)
CREATE (b2)-[:TO_FINAL]->(f)
CREATE (b3)-[:TO_FINAL]->(f)
CREATE (b4)-[:TO_FINAL]->(f)
如果我的查询是这样的:
MATCH (f:Red {key:'someid'})
CALL apoc.path.expand(f, '<TO_ACTIVE_DRAFT|<TO_ATL|TO_FINAL>', '>FINAL_NODE',-1,-1) yield path as p
RETURN p
在使用浏览器并查看 table 视图时,数据看起来像是 return 编辑为数组中的单一路径。所以数组中的数组。
[
[
{red},
{relationship},
{teal},
{relationship},
{red},
{relationship},
{blue},
{relationship},
{green}
],
[
{red},
{relationship},
{teal},
{relationship},
{red},
{relationship},
{blue},
{relationship},
{green}
],
etc
]
{} 是每个节点和关系的属性。
如果我用
RETURN 节点数(p)
它只是给了我一个没有深度的所有项目的列表,如果我尝试将大小或长度与路径一起使用,在这种情况下它们都是 5,并且没有给我单独的节点。
我真正想要的是能够重新创建图表的级别,因此理想情况下数据将 return 像这样编辑:
[
[
{red}
],[
{teal},
{teal},
{teal},
{teal},
{teal},
{teal}
],[
{red}
],[
{blue},
{blue},
{blue},
{blue},
{blue},
{blue},
{blue}
],[
{green}
]
]
这是否可能使用扩展函数,或者我是否需要弄清楚如何通过密码用标准模式做同样的事情 - 即 MATCH (r)-[:*]-(final)?
//几点说明: 可能有任意数量的路线和节点。所以在这个例子中它是红色,蓝绿色,红色,蓝色,绿色。它可以是红色、青色、红色、青色、红色、蓝色、绿色。可能只是红色、蓝色、绿色。
我正在使用 C# 和 neo4j 驱动程序,如果这对我可以获得的数据有影响 return 我从 C# 中的 returning 路径返回的响应示例
[{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":20,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":25,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":5,"Type":"TO_ACTIVE_DRAFT","StartNodeId":20,"EndNodeId":0,"Properties":{}},{"Id":11,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":20,"Properties":{}},{"Id":15,"Type":"TO_ACTIVE_DRAFT","StartNodeId":25,"EndNodeId":21,"Properties":{}},{"Id":19,"Type":"TO_FINAL","StartNodeId":25,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":20,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":24,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":5,"Type":"TO_ACTIVE_DRAFT","StartNodeId":20,"EndNodeId":0,"Properties":{}},{"Id":11,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":20,"Properties":{}},{"Id":14,"Type":"TO_ACTIVE_DRAFT","StartNodeId":24,"EndNodeId":21,"Properties":{}},{"Id":18,"Type":"TO_FINAL","StartNodeId":24,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":20,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":23,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":5,"Type":"TO_ACTIVE_DRAFT","StartNodeId":20,"EndNodeId":0,"Properties":{}},{"Id":11,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":20,"Properties":{}},{"Id":13,"Type":"TO_ACTIVE_DRAFT","StartNodeId":23,"EndNodeId":21,"Properties":{}},{"Id":17,"Type":"TO_FINAL","StartNodeId":23,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":20,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":22,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":5,"Type":"TO_ACTIVE_DRAFT","StartNodeId":20,"EndNodeId":0,"Properties":{}},{"Id":11,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":20,"Properties":{}},{"Id":12,"Type":"TO_ACTIVE_DRAFT","StartNodeId":22,"EndNodeId":21,"Properties":{}},{"Id":16,"Type":"TO_FINAL","StartNodeId":22,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":5,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":25,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":4,"Type":"TO_ACTIVE_DRAFT","StartNodeId":5,"EndNodeId":0,"Properties":{}},{"Id":10,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":5,"Properties":{}},{"Id":15,"Type":"TO_ACTIVE_DRAFT","StartNodeId":25,"EndNodeId":21,"Properties":{}},{"Id":19,"Type":"TO_FINAL","StartNodeId":25,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":5,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":24,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":4,"Type":"TO_ACTIVE_DRAFT","StartNodeId":5,"EndNodeId":0,"Properties":{}},{"Id":10,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":5,"Properties":{}},{"Id":14,"Type":"TO_ACTIVE_DRAFT","StartNodeId":24,"EndNodeId":21,"Properties":{}},{"Id":18,"Type":"TO_FINAL","StartNodeId":24,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":5,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":23,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":4,"Type":"TO_ACTIVE_DRAFT","StartNodeId":5,"EndNodeId":0,"Properties":{}},{"Id":10,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":5,"Properties":{}},{"Id":13,"Type":"TO_ACTIVE_DRAFT","StartNodeId":23,"EndNodeId":21,"Properties":{}},{"Id":17,"Type":"TO_FINAL","StartNodeId":23,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":5,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":22,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":4,"Type":"TO_ACTIVE_DRAFT","StartNodeId":5,"EndNodeId":0,"Properties":{}},{"Id":10,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":5,"Properties":{}},{"Id":12,"Type":"TO_ACTIVE_DRAFT","StartNodeId":22,"EndNodeId":21,"Properties":{}},{"Id":16,"Type":"TO_FINAL","StartNodeId":22,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":4,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":25,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":3,"Type":"TO_ACTIVE_DRAFT","StartNodeId":4,"EndNodeId":0,"Properties":{}},{"Id":9,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":4,"Properties":{}},{"Id":15,"Type":"TO_ACTIVE_DRAFT","StartNodeId":25,"EndNodeId":21,"Properties":{}},{"Id":19,"Type":"TO_FINAL","StartNodeId":25,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":4,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":24,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":3,"Type":"TO_ACTIVE_DRAFT","StartNodeId":4,"EndNodeId":0,"Properties":{}},{"Id":9,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":4,"Properties":{}},{"Id":14,"Type":"TO_ACTIVE_DRAFT","StartNodeId":24,"EndNodeId":21,"Properties":{}},{"Id":18,"Type":"TO_FINAL","StartNodeId":24,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":4,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":23,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":3,"Type":"TO_ACTIVE_DRAFT","StartNodeId":4,"EndNodeId":0,"Properties":{}},{"Id":9,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":4,"Properties":{}},{"Id":13,"Type":"TO_ACTIVE_DRAFT","StartNodeId":23,"EndNodeId":21,"Properties":{}},{"Id":17,"Type":"TO_FINAL","StartNodeId":23,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":4,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":22,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":3,"Type":"TO_ACTIVE_DRAFT","StartNodeId":4,"EndNodeId":0,"Properties":{}},{"Id":9,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":4,"Properties":{}},{"Id":12,"Type":"TO_ACTIVE_DRAFT","StartNodeId":22,"EndNodeId":21,"Properties":{}},{"Id":16,"Type":"TO_FINAL","StartNodeId":22,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":3,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":25,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":2,"Type":"TO_ACTIVE_DRAFT","StartNodeId":3,"EndNodeId":0,"Properties":{}},{"Id":8,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":3,"Properties":{}},{"Id":15,"Type":"TO_ACTIVE_DRAFT","StartNodeId":25,"EndNodeId":21,"Properties":{}},{"Id":19,"Type":"TO_FINAL","StartNodeId":25,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":3,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":24,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":2,"Type":"TO_ACTIVE_DRAFT","StartNodeId":3,"EndNodeId":0,"Properties":{}},{"Id":8,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":3,"Properties":{}},{"Id":14,"Type":"TO_ACTIVE_DRAFT","StartNodeId":24,"EndNodeId":21,"Properties":{}},{"Id":18,"Type":"TO_FINAL","StartNodeId":24,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":3,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":23,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":2,"Type":"TO_ACTIVE_DRAFT","StartNodeId":3,"EndNodeId":0,"Properties":{}},{"Id":8,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":3,"Properties":{}},{"Id":13,"Type":"TO_ACTIVE_DRAFT","StartNodeId":23,"EndNodeId":21,"Properties":{}},{"Id":17,"Type":"TO_FINAL","StartNodeId":23,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":3,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":22,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":2,"Type":"TO_ACTIVE_DRAFT","StartNodeId":3,"EndNodeId":0,"Properties":{}},{"Id":8,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":3,"Properties":{}},{"Id":12,"Type":"TO_ACTIVE_DRAFT","StartNodeId":22,"EndNodeId":21,"Properties":{}},{"Id":16,"Type":"TO_FINAL","StartNodeId":22,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":2,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":25,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":1,"Type":"TO_ACTIVE_DRAFT","StartNodeId":2,"EndNodeId":0,"Properties":{}},{"Id":7,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":2,"Properties":{}},{"Id":15,"Type":"TO_ACTIVE_DRAFT","StartNodeId":25,"EndNodeId":21,"Properties":{}},{"Id":19,"Type":"TO_FINAL","StartNodeId":25,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":2,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":24,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":1,"Type":"TO_ACTIVE_DRAFT","StartNodeId":2,"EndNodeId":0,"Properties":{}},{"Id":7,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":2,"Properties":{}},{"Id":14,"Type":"TO_ACTIVE_DRAFT","StartNodeId":24,"EndNodeId":21,"Properties":{}},{"Id":18,"Type":"TO_FINAL","StartNodeId":24,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":2,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":23,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":1,"Type":"TO_ACTIVE_DRAFT","StartNodeId":2,"EndNodeId":0,"Properties":{}},{"Id":7,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":2,"Properties":{}},{"Id":13,"Type":"TO_ACTIVE_DRAFT","StartNodeId":23,"EndNodeId":21,"Properties":{}},{"Id":17,"Type":"TO_FINAL","StartNodeId":23,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":2,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":22,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":1,"Type":"TO_ACTIVE_DRAFT","StartNodeId":2,"EndNodeId":0,"Properties":{}},{"Id":7,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":2,"Properties":{}},{"Id":12,"Type":"TO_ACTIVE_DRAFT","StartNodeId":22,"EndNodeId":21,"Properties":{}},{"Id":16,"Type":"TO_FINAL","StartNodeId":22,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":1,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":25,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":0,"Type":"TO_ACTIVE_DRAFT","StartNodeId":1,"EndNodeId":0,"Properties":{}},{"Id":6,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":1,"Properties":{}},{"Id":15,"Type":"TO_ACTIVE_DRAFT","StartNodeId":25,"EndNodeId":21,"Properties":{}},{"Id":19,"Type":"TO_FINAL","StartNodeId":25,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":1,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":24,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":0,"Type":"TO_ACTIVE_DRAFT","StartNodeId":1,"EndNodeId":0,"Properties":{}},{"Id":6,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":1,"Properties":{}},{"Id":14,"Type":"TO_ACTIVE_DRAFT","StartNodeId":24,"EndNodeId":21,"Properties":{}},{"Id":18,"Type":"TO_FINAL","StartNodeId":24,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":1,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":23,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":0,"Type":"TO_ACTIVE_DRAFT","StartNodeId":1,"EndNodeId":0,"Properties":{}},{"Id":6,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":1,"Properties":{}},{"Id":13,"Type":"TO_ACTIVE_DRAFT","StartNodeId":23,"EndNodeId":21,"Properties":{}},{"Id":17,"Type":"TO_FINAL","StartNodeId":23,"EndNodeId":26,"Properties":{}}]}},{"p":{"Start":{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},"End":{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}},"Nodes":[{"Id":0,"Labels":["Red"],"Properties":{"key":"someid"}},{"Id":1,"Labels":["Teal"],"Properties":{}},{"Id":21,"Labels":["Red"],"Properties":{}},{"Id":22,"Labels":["Blue"],"Properties":{}},{"Id":26,"Labels":["FINAL_NODE"],"Properties":{}}],"Relationships":[{"Id":0,"Type":"TO_ACTIVE_DRAFT","StartNodeId":1,"EndNodeId":0,"Properties":{}},{"Id":6,"Type":"TO_ATL","StartNodeId":21,"EndNodeId":1,"Properties":{}},{"Id":12,"Type":"TO_ACTIVE_DRAFT","StartNodeId":22,"EndNodeId":21,"Properties":{}},{"Id":16,"Type":"TO_FINAL","StartNodeId":22,"EndNodeId":26,"Properties":{}}]}}]
[补充说明]
一个更具体的例子是,如果你要移动动物,你有一个出生来源,然后你有几个移动直到你到达市场。所以该图看起来像初始屏幕截图,其中红色节点是动物已移动到的特定位置,蓝绿色和蓝色是不同类型的时间表。但是,我唯一确定的信息是它当前所在的位置(红色节点),我想到达出生源(绿色节点)。它的移动次数和位置是可变的。它可能已经移动过一次,也可能已经移动过 x 次。我确实知道路径仅限于 3 个标记关系。因此,虽然我非常喜欢 apoc 过程的语法,但如果在获取该路径后我无法对其进行操作,那么也许我只需要执行类似
的操作MATCH (f:Red {key:'someid'})
OPTIONAL MATCH (f)<-[:TO_ACTIVE_DRAFT|TO_ATL*]-()-[:SOURCE_FOR_INC]->(g:Green)
RETURN g
但对我来说,上面只会 return f 或 g 而不是路径,所以它必须是这样的:
MATCH (f:Red {key:'someid'})
p = OPTIONAL MATCH (f)<-[:TO_ACTIVE_DRAFT|TO_ATL*]-()-[:SOURCE_FOR_INC]->(g:Green)
RETURN p
我相信这会给我路径,但与 apoc 的情况相同,我无法将数据分组...
这个不使用 APOC 过程的查询(带有一些假设的节点标签)可能对您有用:
MATCH (f:Node {key:'someid'})
<-[:TO_ACTIVE_DRAFT]-(t:Teal)
<-[:ATL_TO_DRAFT]-(r:Red)
<-[:TO_ACTIVE_DRAFT]-(b:Blue)
-[:SOURCE_FOR_INC]->(g:Green)
RETURN COLLECT(DISTINCT f), COLLECT(DISTINCT t), COLLECT(DISTINCT r), COLLECT(DISTINCT b), COLLECT(DISTINCT g)
应该可以想出 Cypher 代码,但这需要一些努力,而且可能非常复杂。
您最好只取以下结果:
MATCH p=(f:Red {key:'someid'}<-[:TO_ACTIVE_DRAFT|TO_ATL*]-()-[:SOURCE_FOR_INC]->(g:Green)
RETURN p
并使用某种外部编程语言生成您想要的数据。 大多数时候,路径是人们想要的,所以 Cypher 就是为此而设计的。