我写了一篇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中写这个?
您可以添加模式谓词以指示您只需要: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
在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