我正在处理此查询,在这里我必须找到从节点到给定节点列表和给定关系列表的路径。
问题是WHERE type(rel) in foundRels
我想遍历此列表并执行模糊字符串匹配而不是精确的字符串匹配,但是我不能遍历2个列表。
这是我的Cypher查询。
MATCH path=(`C1`: COMPETENCY { name: 'C1' })-[*]->(e2)
WITH ['TRAVEL_TO'] as foundRels, ['CHENNAI'] as foundNodes
WHERE ANY (rel in relationships(path) WHERE type(rel) in foundRels)
AND ANY (node in nodes(path) WHERE node.name in foundNodes)
RETURN apoc.path.elements(path) as pathElements
希望它能提供一些想法。
答案 0 :(得分:1)
使用功能“包含”和“展开”。 Unwind将您的列表扩展为行,并且包含将搜索type(rel)中的字符串。在查询中添加以下脚本。
UNWIND foundRels as fRel
WITH foundNodes
WHERE ANY (rel in relationships(path) WHERE type(rel) contains fRel)