A WITH
приводит к тому, что все существующие переменные становятся несвязанными , за исключением переменных, которые передаются в условии WITH
.
Первое WITH
должно пройти b
, так что следующий MATCH
может использовать его. И второй WITH
должен пройти paths
, чтобы его можно было вернуть:
MATCH (a:A)-->(b:B) WHERE b.uid="asdfas"
MATCH path = (a)->()
WITH b, COLLECT(path) AS paths
MATCH another_path = (b)->()
WITH paths, COLLECT(another_path) AS paths_2
RETURN paths, paths_2
Еще лучше, ваш второй WITH
на самом деле не нужен:
MATCH (a:A)-->(b:B) WHERE b.uid="asdfas"
MATCH path = (a)->()
WITH b, COLLECT(path) AS paths
MATCH another_path = (b)->()
RETURN paths, COLLECT(another_path) AS paths_2