Пожалуйста, помогите мне использовать пункт EXCEPT в Neo4j

У меня есть несколько узлов в Neo4j, с дружескими отношениями. Теперь я хочу запросить друзей друзей одного узла (например, Кейт), кроме узлов, которые уже дружат с ней. Я пробовал эти команды, но это не работает:

MATCH ( p:person {name:"Kate"} )-[friends_with*2..3] -> (pp:person)
WHERE (pp) NOT (p)->[friends_with]-(pp)
return pp;

OR

  MATCH ( p:person {name:"Kate"} )-[friends_with*2..3] -> (pp:person)
    WHERE (pp) OUT [(p)->[friends_with]-(pp)]
    return pp;

Буду признателен, если кто-нибудь сможет помочь


person Fatemeh    schedule 02.09.2015    source источник
comment
*2..3 даст вам друзей друзей, а также друзей друзей друзей. Используйте *2, если вам нужны только друзья друзей.   -  person Luanne    schedule 02.09.2015
comment
Да, я знаю, и спасибо за вашу точку зрения, но это не так. Моя проблема заключается в следующем условии, кроме части! например, когда у меня есть: KATE --friends_with--ALICE и KATE--friend_with--TINA и ALICE--friends_with--TINA and ALICE--friends_with--SHILA. Я хочу запрос, который дает мне только имя, ШИЛА   -  person Fatemeh    schedule 02.09.2015
comment
как совет: всегда добавляйте детали, это не работает. возвращает ложные результаты или ваш запрос приводит к ошибке и т. д. и т. д.   -  person Joshua    schedule 02.09.2015
comment
Хорошо, спасибо за совет @Joshua   -  person Fatemeh    schedule 04.09.2015


Ответы (1)


Почти готово, просто синтаксис:

MATCH (p:person {name:"Kate"})-[:friends_with*2..3]->(pp:person)
WHERE NOT ((p)-[:friends_with]->(pp))
return pp;

Кстати, вы также рассмотрели направление. Так что если (pp)-[:friends_with]->(p), это не будет исключено. Если это не было намерением, просто оставьте указания.

person Luanne    schedule 02.09.2015
comment
Спасибо за ваш ответ, но он еще не работает :( Я получил эту ошибку: несоответствие типа: ожидаемая связь, но была коллекция‹отношение› (строка 2, столбец 17 (смещение: 80)) ГДЕ НЕ ((p)-[ друзья_с]-›(pp)) - person Fatemeh; 02.09.2015
comment
Извините, слишком быстро набрал. : отсутствует в типе rel, я отредактировал свой ответ - person Luanne; 02.09.2015