我正在尝试查询图形以返回具有一组指定关系的所有路径。
我的图表包含以下节点:人员
连接两个人的关系是:知道,已婚
所以一些数据的例子是:
c:Person-[:knows]->b:Person
a:Person-[:married]->c:Person
d:Person-[knows]-> a:Person
在我的查询中,我希望能够找到包含“已知”和“已婚”关系的所有路径;但是,我并不关心路径中这种关系的排序。例如,我的查询应返回以下路径:
1)a:人 - [:已婚] - > c:人 - [:know] - > b:人员
2)d:人 - [:知道] - > a:人 - [:已婚] - > c:人
我尝试了以下查询
MATCH p=(a)-[:KNOWS|MARRIED*1..3]-(b)
RETURN p
然而,它返回的路径只有知道关系或路径只有结婚关系,但不是两者。
有没有办法找到我想要的路径?非常感谢!
答案 0 :(得分:0)
你可以试试这个
MATCH p=(a)-[rel*]-(b)
WHERE type(rel)='KNOWS' OR type(rel)='MARRIED'
RETURN p
它将为您提供所有路径
答案 1 :(得分:0)
MATCH p = (a:Person)-[rels:KNOWS|MARRIED*]->(b:Person)
WITH p, EXTRACT(r IN rels | TYPE(r)) AS types
WHERE 'KNOWS' IN types AND 'MARRIED' IN types
RETURN p