Neo4j 密码查询-检查一个关系(如果不存在)检查另一个关系

Neo4j 密码查询-检查一个关系(如果不存在)检查另一个关系,neo4j,cypher,Neo4j,Cypher,我想检查一个节点中是否存在一个关系,如果没有找到,那么我想检查同一节点中的另一个关系类型 类似于,(a:Type)-[:relation1]-(b)如果relation1存在,则查询返回节点b。如果不存在,则将检查另一个关系,如(a:Type)-[:relation2]-(b),并返回节点b 我想知道如何将其编写为单个密码查询。任何帮助都将不胜感激。谢谢。使用工会怎么样 MATCH (a:Type)-[:relation1]-(b) RETURN b UNION MATCH (a:Type)-[

我想检查一个节点中是否存在一个关系,如果没有找到,那么我想检查同一节点中的另一个关系类型

类似于,(a:Type)-[:relation1]-(b)如果relation1存在,则查询返回节点b。如果不存在,则将检查另一个关系,如(a:Type)-[:relation2]-(b),并返回节点b


我想知道如何将其编写为单个密码查询。任何帮助都将不胜感激。谢谢。

使用工会怎么样

MATCH (a:Type)-[:relation1]-(b)
RETURN b
UNION
MATCH (a:Type)-[:relation2]-(b)
RETURN b
希望有帮助,
Tom

如果第一个关系中的节点为空,您可以使用COALESCE()进行备份选择

// after you've already matched to a
OPTIONAL MATCH (a)-[:relation1]-(b)
OPTIONAL MATCH (a)-[:relation2]-(c)
WITH a, COALESCE(b, c) as b // will use node c if b is null
...