我得到了一个有两种关系的图:Sync
和Async
。
我希望查询给予一个子图,即所有可以直接或间接到达的节点。
此查询适用于:
MATCH (s {type: 'service')
OPTIONAL MATCH (s)-[:Async|Sync*]->(dependent)
WITH s, COLLECT(DISTINCT dependent) AS allDependentNodes
字符串
这给了我可以通过同步或异步关系到达的每个节点。
但现在我想根据关系类型使用不同的方向。我希望可以通过传出Sync a -> b
或传入Async a <- b
到达的节点。
所以这就像一个OR匹配条件。我试过几种方法,但没有太大的成功:
MATCH (s {type: 'service')
OPTIONAL MATCH (s)-[:Sync*]->(dependent), (s)<-[:Async*]-(d)
WITH s, totalNodes, COLLECT(DISTINCT dependent) AS allDependentNodes
型
我如何将关系匹配在一起,或者我如何将不同类型的关系与不同的方向匹配?
1条答案
按热度按时间p4tfgftt1#
要遵循由类型
Sync
和方向出站或类型Async
和方向入站的关系组成的所有路径,以下量化路径模式将起作用:字符串