遍历嵌套列表理解密码

时间:2019-05-22 12:42:34

标签: neo4j cypher

我正在处理此查询,在这里我必须找到从节点到给定节点列表和给定关系列表的路径。

问题是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

希望它能提供一些想法。

1 个答案:

答案 0 :(得分:1)

使用功能“包含”和“展开”。 Unwind将您的列表扩展为行,并且包含将搜索type(rel)中的字符串。在查询中添加以下脚本。

UNWIND foundRels as fRel 
WITH foundNodes 
WHERE ANY (rel in relationships(path) WHERE type(rel) contains fRel)