有点像Neo4j的新手,而且我一直在研究看起来应该很简单的查询,但我在找出正确的Cypher时遇到了问题。鉴于以下模型,我想让所有Objects
(以及他们的Statuses
)成为obj1
的替换,其Status type of 2
或no Status
。除了ob3
节点之外,我期望的结果是返回Status
节点及其ob4
节点。
到目前为止,我最接近的是:
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
条款,但我觉得我错过了一些非常简单的事情。