Предполагая, что вы хотите получить все пары builder
/ client
, которые имеют только одну связь builder_for
между ними, в этом запросе используется агрегирующая функция COUNT
для этого:
MATCH (builder:Person)-[rel:builder_for]->(client:Person)
WITH builder, client, COUNT(rel) AS rel_count
WHERE rel_count = 1
RETURN builder, client;
[ОБНОВЛЕНИЕ]
Если вместо этого вы хотите builder
/ client
пар, в которых builder
имеет только эту client
и наоборот, тогда этот запрос должен работать:
MATCH (builder:Person)
WHERE SIZE((builder)-[:builder_for]->()) = 1
MATCH (builder)-[:builder_for]->(client:Person)
WHERE SIZE(()-[:builder_for]->(client)) = 1
RETURN builder, client;
Этот запрос использует эффективные проверки степени взаимосвязи (в предложениях WHERE
), чтобы гарантировать, что только узлы builder
и client
иметь, соответственно, одну исходящую или входящую builder_for
связь.