PHP Neo4j НЕ работает запрос отношения

Я пытаюсь выполнить NOT relation запрос, но условие просто не применяется. Что я здесь не так делаю?

Запрос, который я пробовал:

MATCH (blog:Blog), (user:User{id:3})-[:FOLLOWS]->(otherUser:User)
WHERE NOT ((otherUser)-[:OWNS]->(blog))
RETURN blog

Запрос должен вернуться — все блоги, которые не принадлежат моим друзьям. Мой идентификатор 3.
Поэтому все блоги, принадлежащие другим пользователям, должны быть возвращены.

1

Решение

Вы распределяете кросс-продукт между всеми блогами и всеми друзьями пользователя.

Но условие проверяется только для каждой пары.

Вы, вероятно, хотите это:

MATCH (user:User{id:3})
MATCH (blog:Blog)
WHERE NOT ((user)-[:FOLLOWS]->()-[:OWNS]->(blog))
RETURN blog

или это

MATCH (user:User{id:3})-[:FOLLOWS]->(otherUser:User)
WITH collect(otherUser) as friends
MATCH (otherUser)-[:OWNS]->(blog:Blog)
WHERE NOT otherUser IN friends
RETURN blog
0

Другие решения

Других решений пока нет …