Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j Cypher:只提取与其他两个节点有独立连接的节点?_Neo4j_Cypher - Fatal编程技术网

Neo4j Cypher:只提取与其他两个节点有独立连接的节点?

Neo4j Cypher:只提取与其他两个节点有独立连接的节点?,neo4j,cypher,Neo4j,Cypher,我有以下疑问: MATCH (rebecca:Person)-[r1*1..3]-(robert:Person) WHERE rebecca.name=Rebecca AND robert.name='Robert' RETURN rebecca, robert, extract(x IN r1 | {rel: x, start: startNode(x), end: endNode(x)}) 这将返回Rebecca或Robert的3个跃点内的所有节点和边。所以它包括一些节点,从Rebec

我有以下疑问:

MATCH (rebecca:Person)-[r1*1..3]-(robert:Person)
WHERE rebecca.name=Rebecca AND robert.name='Robert'
RETURN rebecca, robert,
  extract(x IN r1 | {rel: x, start: startNode(x), end: endNode(x)})
这将返回Rebecca或Robert的3个跃点内的所有节点和边。所以它包括一些节点,从Rebecca到2个跃点,从Robert到3个跃点,他的连接是通过Rebecca

有没有办法排除Robert唯一通过Rebecca连接的节点,反之亦然


我感兴趣的是他们真正独立共享的连接,而不是唯一通过彼此连接的连接

有3次跳跃,通过另一次跳跃的唯一可能方式是如果(本例来自Rebecca):

rebecca->robert->node->robert

所以罗伯特必须出现两次(或者丽贝卡,从另一个方向)

在我看来,你只需要一个限制,丽贝卡和罗伯特在这条路上只能出现一次:

MATCH p=(rebecca:Person)-[r1*1..3]-(robert:Person)
WHERE rebecca.name=Rebecca AND robert.name='Robert'
 AND SINGLE(rebecca in nodes(p)) AND SINGLE(robert in nodes(p))
RETURN rebecca, robert,
  extract(x IN r1 | {rel: x, start: startNode(x), end: endNode(x)})

你能举一个你目前看到的不想被考虑的路径的例子吗?在该路径中,Rebecca或Robert是否出现两次?请记住,您的查询是针对从Rebecca到Robert有三个跃点的路径,因此节点可以最远(该节点不是Rebecca或Robert)距离其中一个节点有两个跃点(因为最后一个跃点需要到Rebecca或Robert,具体取决于路径的起始位置)。您将永远无法获得距离两个节点都有2个跃点的节点,或距离其中一个节点有3个跃点的节点。