1
有点Neo4j新手,我一直在寻找一个似乎应该很简单的查询,但我有问题搞清楚正确的Cypher。鉴于下面的模型,我想获得所有Objects
(和它们的Statuses
),它们是obj1
的替代品,其具有Status type of 2
或no Status
。除了ob4
节点之外,我希望的结果是返回ob3
节点和它的Status
节点。Neo4j Cypher - 匹配关系条件或null
到目前为止,我来最接近的是:
match (obj1:Object{nm:'obj1'})-[:REPLACES*]->(repObj)
optional match p=(repObj)-[:HAS_STATUS]->(stat)
where stat.type = 2
return repObj, p
这将返回我想要的节点,但也返回ob2
节点,而它的Status
节点。如果我保留上面的查询,但只返回p
变量,我得到ob3
节点和它的Status
,但不回ob4
节点。我试过了不同查询的组合,包括WITH
,NOT
和UNION
条款,但我觉得我错过了一些非常简单的事情。
完美,谢谢!我明白我现在想念的是什么,这当然是完美的。我如何将此标记为正确答案? – cartmania