如何在Cypher中写出负关系条件

问题描述 投票:0回答:2

我写了一篇Cypher声明:

match p=(:Fabric)-[:Child*]-(f:Fabric{code:'PC16-18121'})-[:Child*]-(ef:Fabric)
match (ef)-[:Refrence]-(r:RequestOrder)
return p,r

结果:image

但我想要另一个结果:Don't display the node that without ‘result’ relationship

题:

如何在Cypher中写这个?

neo4j cypher
2个回答
0
投票

您可以添加模式谓词以指示您只需要:RequestOrders不:结果关系。

此外,我们可以稍微清理一下该查询,目前它正在匹配:子*关系:织物两次。

match p=(:Fabric{code:'PC16-18121'})-[:Child*]-(:Fabric)-[:Refrence]-(r:RequestOrder) 
where not (r)-[:Result]-()
return p,r

您可能还需要更正拼写:图表中的参考。

编辑:获取所有的路径:FABRIC节点,尝试这样:

match p=(:Fabric{code:'PC16-18121'})-[:Child*]-(f:Fabric)
optional match (f)-[:Refrence]-(r:RequestOrder)
where not (r)-[:Result]-()
return p,r

0
投票

在InverseFalcon的例子的帮助下,我知道该怎么做:

match (f:Fabric{code:'PC16-18121'}),
(f)-[:Child*]->(:Fabric)-[:Refrence]-(r:RequestOrder)
where not (r)-[:Result]-()
return (f)-[:Child*]->(:Fabric),(:Fabric)-[:Child*]->(f),
(f)-[:Child*]->(:Fabric)-[:Refrence]-(r:RequestOrder)

结果是: Result Image

谢谢@InverseFalcon

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.