gpt4 book ai didi

neo4j - 路径中每个节点上的 cypher 子查询

转载 作者:行者123 更新时间:2023-12-03 04:15:58 32 4
gpt4 key购买 nike

在此图中,我想找到红色气泡中圈出的所有灰色节点,而不是任何其他灰色节点。也就是说,所有带有标签 :OTHER 的节点都是 A 和 C 之间的路径上的节点的子节点。注意,A 和 C 之间的路径可能比此处显示的 3 个节点更长。

enter image description here

所以我想要做的是获取路径 p=A...C 并子查询路径中的每个节点以获取 -[:HAS]->(n:OTHER) 关系。

但是我被困在子查询上,因为它不作用于初始查询的结果集,而是作用于所有节点。

所以这给了我所有灰色节点:(而不仅仅是红色气泡中的节点。请帮忙

match p=(n:MAIN)-[:EXTENDS*]->(m:MAIN) 
where n.name = 'A' AND m.name='C'
WITH nodes(p) AS collection
match (l:MAIN)-[:HAS]->(u:OTHER) return u; //This last part is my subquery

最佳答案

问题是子查询的“MATCH”中没有使用第一个查询结果中的节点。

您可以使用标识符(例如“middle”)显式指定所需路径 A--B 上的节点,然后在子查询的匹配模式中使用它,

MATCH p=(n:MAIN)-[:EXTENDS*0..]->(middle:MAIN)-[:EXTENDS*0..]->(m:MAIN)  
WHERE n.name = 'A' AND m.name='C'
WITH middle
MATCH (middle:MAIN)-[:HAS]->(u:OTHER)
RETURN u

关于neo4j - 路径中每个节点上的 cypher 子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21765875/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com