让我说我有一个匹配查询返回一个节点列表(oms),然后我匹配与(oms)相关的节点(rs),但我只想要它们如果单节点(rs)与我之前返回的列表中的全部或更多(oms)有关系。这是我的查询:
MATCH (st:Route) WHERE id(st) = 0
MATCH (st)--(rs:RS)--(oms:OMS)
WITH st,rs, collect(oms) AS omsList
MATCH (ed:Route)--(rs2:RS)
WHERE ALL(x in omsList WHERE (rs2)--(x))
UNWIND omsList AS oms
RETURN *
这就是我的查询:
但是如上所述,我不想要节点20和21,因为它们与列表中返回的所有节点都没有关系。
注意我从节点0开始,节点以(oms)节点4和2结束。所以如果他们与BOTH 4和2有关系,我只想要它们。
我如何以我想要的方式查询?