Нео4дж. Создать ограничение для количества отношений, имеющих тип RT?

Я использую этот код для получения путей между узлами a и b, которые содержат два и менее отношений RT.

MATCH (a:Tes1 { title: "a" }),(b:Tes1 { title: "b" }), p=shortestPath((a)-[r:BT|RT*]-(b))
WITH count(type(r)='RT') as cnt
WHERE cnt < 3
RETURN p;

ошибка:

Несоответствие типа: ожидаемая связь, но был список (строка 2, столбец 17 (смещение: 111)) «СО счетом (тип (r) = 'RT') как cnt»

Я знаю, что означает эта ошибка, но другого способа я не знаю. Пожалуйста помоги


person Asya    schedule 11.11.2017    source источник


Ответы (1)


Вы не можете подсчитать конкретный тип коллекции, вам нужно отфильтровать ее и получить ее размер:

MATCH (a:Tes1 { title: "a" }),(b:Tes1 { title: "b" }), p=shortestPath((a)-[r:BT|RT*]-(b))
WITH p, filter(x IN relationships(p) WHERE type(x) = "RT") AS rtRels
WHERE size(rtRels) < 3
RETURN p;
person Christophe Willemsen    schedule 11.11.2017