更复杂的 Cypher 查询的结果是节点列表和关系列表,其中一个列表的每个位置/行在内容方面与另一个列表的相同位置/行相关。该关系仅由两个列表中的位置组成,相应元素之间没有图表。
因为我需要通过节点的属性过滤两个列表,所以我将两个列表组合在一个地图中,并尝试通过列表理解来实现我的意图。
MATCH
<complex query>
WITH collect(labelA) AS nodesList, collect(relation) AS relationList
WITH {nodes:nodesList, relations:relationList} AS data
WITH [x IN data WHERE x.nodes.attributName <> „text“] AS filteredData
RETURN filteredData;
可以理解的是,这会导致第 5 行出现以下错误。
Neo.ClientError.Statement.TypeError:类型不匹配:预期地图但为 List{(4538063)、(4538063)、(4538063)}
从技术角度来看,当我x.nodes
在一行中展开该部分时,它会起作用,但是我正在失去对第二个表的依赖关系。那么如何通过第一个列表的节点属性同步过滤两个列表呢?