我有一个简单的 Neo4j 图形数据库,是我在尝试为新应用程序建模时创建的。当我运行以下查询时,我得到了我期望的节点,但我也得到了比我预想的更多的关系:
MATCH (o:Office)-[r:REPORTS_VARIABLE_TO]->()
RETURN o,r
结果如下:
因为我特别要求与
[:REPORTS_VARIABLE_TO]
匹配的东西,所以我希望在结果中只看到这种关系。不过,我看到的是任何匹配节点之间存在的所有关系(正如您在图像底部看到的那样)。
有没有办法过滤掉那些不属于我正在寻找的类型的关系?
对于最新版本(例如 3.2、3.3),“自动完成”开关已移至浏览器设置,其新名称为“连接所有结果”。如果选中,它将连接节点及其所有关系。否则,您只能看到符合过滤条件的关系。
因此,正如 Nicole White 所指出的那样,答案是关闭 Neo4j 可视化工具中的“自动完成”开关(右下角,在下图中以红色框出)。
这会导致应用程序不再显示已显示/选定节点之间的所有关系,而是仅显示查询中指定的关系和节点,如下所示:
我很确定这只是后端可视化的一个功能,它将显示屏幕上任意两个节点之间的所有关系(请注意,它还会显示目标节点,即使您没有在返回声明)。
如果查看原始查询结果,您将只能获得您指定的关系类型。
所以,简单地说:您的查询完全有效且正确;这只是 Neo4j 管理工具在捉弄你。
但它根本不会连接节点。
我有这个查询:MATCH (p1:Person)-[:Transaction]-(p2:Person) 返回p1,p2; 如果我关闭了“连接结果节点”,我看不到任何连接。