我写了一篇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中写这个?
答案 0 :(得分:1)
在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
答案 1 :(得分: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