【发布时间】:2021-09-16 16:55:17
【问题描述】:
我一直在编写一个 Cypher 查询,该查询可以让我找到其代码未包含在给定列表中的所有节点。我尝试在路径中搜索模式否定、节点否定、排除但没有成功。
假设我有一个代码列表(即使这个列表有 1 个元素):["1V2ZG"]
我想构建一个 Cypher 查询,该查询将返回不在上述列表中的 ARNOG 节点的每个子节点。
这是起始图:
我想要的图形响应:
我正在使用的查询返回所有不是我想要的节点:
MATCH
(excl:Client)<-[:PARENT_OF*]-(n:Client:Group),
path=(b:BaseHierarchy)-[:INCLUDES]->(n)-[:PARENT_OF*]->(inc:Client)
WHERE excl.code IN ['1V2ZG'] AND n.code = 'ARNOG'
WITH b,
nodes(path) as nodes, relationships(path) as relationships
RETURN b,
apoc.coll.toSet(apoc.coll.flatten(collect(relationships))) as relationships,
apoc.coll.toSet(apoc.coll.flatten(collect(nodes))) as nodes;
【问题讨论】: