如何修改apoc.path.expandConfig查询过滤含指定关系属性的路径
过滤APOC路径扩展中包含无效关系的路径
你可以通过添加ALL()函数的过滤条件,直接在获取路径后筛选出所有关系的NotValid属性均为NULL的路径,修改后的查询如下:
WITH source, candidates, exits, typesFilter // Use APOC path expansion CALL apoc.path.expandConfig(source, { labelFilter: '+Object|SubObject', relationshipFilter: typesFilter, terminatorNodes: exits, whitelistNodes: candidates, bfs: FALSE, uniqueness: "NODE_GLOBAL" }) YIELD path // 仅保留所有关系的NotValid均为NULL的路径 WHERE ALL(r IN relationships(path) WHERE r.NotValid IS NULL) RETURN [r IN relationships(path) WHERE r.NotValid IS NULL] AS validRelationships, nodes(path)
关键改动说明:
- 使用
ALL()函数遍历路径中的每一条关系,确保所有关系都满足r.NotValid IS NULL的条件。只要路径里存在任意一条NotValid=true的关系,这条路径就会被过滤掉。 - 原查询仅提取了有效关系但未对路径本身做筛选,添加这条
WHERE子句后就能精准过滤掉不符合要求的路径。 - 对应你给出的示例场景,第二条路径中的
r4.NotValid=true会触发过滤条件,最终仅返回第一条路径的结果。
内容的提问来源于stack exchange,提问作者Rohit Sharma
相关产品推荐
相关产品推荐

