Переменная a
является List<Node>
, и вы используете ее внутри предложения MATCH
как Node
.
Вы должны использовать этот запрос вместо:
OPTIONAL MATCH (a1:Article) WHERE a1.status='active'
WITH collect(a1) as a1_col
OPTIONAL MATCH (a2:Article) WHERE a2.category='xyz'
WITH DISTINCT a1_col + collect(a2) as a
MATCH (article)-[:author]->(u:User)
WHERE NOT id(u)=101 AND article IN a
RETURN a
Я думаю, вы можете оптимизировать свой запрос следующим образом:
MATCH (u:User) WHERE id(u)=101 WITH u
MATCH (a:Article)
WHERE (a.category='xyz' OR a.status='active') AND
NOT (a)-[:author]->(u)
RETURN collect(DISTINCT a)