Neo4j:如何找到具有相互连接节点的连接节点?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Neo4j:如何找到具有相互连接节点的连接节点?相关的知识,希望对你有一定的参考价值。

MATCH (n), (n)-[:connected_to {status: 2}]-(sp:StayPal)
OPTIONAL MATCH (n)-[:connected_to {status: 1}] - (mutual_friend)-[:connected_to {status: 1}]-(sp)
WHERE (ID(n) = {ID_n})
RETURN DISTINCT sp, collect(mutual_friend)

我试图获取状态= 2的n(staypal)的所有连接以及n和sp的所有相互连接,但是我得到了错误的结果

有帮助吗?

答案

WHERE子句的位置很重要,因为它适用于前面的子句。把它放在你的MATCH下,而不是可选的比赛。

请记住,OPTIONAL MATCH的行为是查找匹配项,如果未找到匹配项(包括OPTIONAL MATCH的WHERE子句的计算结果为false),则新引入的变量将设置为null。

此外,除了模式匹配之外,不需要匹配(n)。只需使用MATCH (n)-[:connected_to {status: 2}]-(sp:StayPal)作为第一行。

以上是关于Neo4j:如何找到具有相互连接节点的连接节点?的主要内容,如果未能解决你的问题,请参考以下文章

我如何基于Neo4j中的子节点链接创建节点之间的链接

Neo4j - 遍历以找到特定的连接组件

如何在neo4j中获取所有连接的节点

如何将这种图存储在 neo4j 中以进行快速遍历?

Neo4j - 复杂的密码查询 - 需要外连接

电影智能问答——neo4j数据库创建