Neo4j:如何排除某些关系,其中某些节点作为 MATCH 中的源节点

Neo4j: How to exclude certain relationships where certain node as source node in MATCH

例如:

我的 Cypher 查询是:

MATCH p=(a:AbstractEvent)-[r:NEXT]->(c:AbstractEvent)
WHERE NOT id(a) in [115]
RETURN p

但结果仍然包括115“客户”节点到“UI.Click”节点的出局关系。说清楚,我仍然需要115“客户”节点,但没有那些传出关系。

如何在MATCH时排除一个节点的所有出局关系?

另外,这个例子中的 RETURN pRETURN a,r,c 有什么区别?

如有任何帮助,我们将不胜感激。

Neo4j UI 名为 'Graph' 的选项将为您呈现 所有 所选节点之间的关系,而不管您的查询返回的关系如何。因此,如果返回节点 115(如 c),您将看到它与其他返回节点的所有关系。如果您想检查您的“真实”查询结果,请使用左上角的 'Table'、'Text' 或 'Code' 选项。不是 'Graph'.

在 Neo4j 浏览器设置中,'Connect result nodes' 选项默认启用。查询中匹配的节点之间的所有关系都将在启用时显示,即使您没有在查询中明确提到 path/pattern/relationship。

您可以在 Neo4j 浏览器左下角的浏览器设置中找到此选项。

Adjust the Graph Visualization settings in the Browser Settings drawer

启用此选项后,RETURN pRETURN a,r,cRETURN a,c 将显示相同的图形输出。 但是,如果禁用 'Connect result nodes' 选项,结果图将仅包含您在 Return 语句中指定的关系。RETURN pRETURN a,r,c 将获取整个路径,但 RETURN a,c 只会获取节点。