Совпадение двунаправленных отношений в Neo4j Cypher - PullRequest
0 голосов
/ 22 сентября 2019

У меня есть следующая модель домена:

Author - creates posts and can reply to comments
Guest/Reader - can leave comments

Я хочу найти авторов, которые не ответили на комментарии конкретного пользователя.

Я пробовал следующий запрос, но онне работает.

MATCH (author:Author),(reader) WHERE NOT (author:Account)-[:REPLIED_TO_COMMENT]-[:LEFT_COMMENT]-(reader) RETURN DISTINCT author

Помогите, пожалуйста, создать правильный запрос.

1 Ответ

1 голос
/ 22 сентября 2019

Если я правильно понял ваш вопрос, запрос должен быть определен следующим образом:

MATCH (author:Author),(reader:Reader {email:'specific@user.email'}) 
WHERE NOT (author)-[:REPLIED_TO_COMMENT]->(:ReaderComment)<-[:LEFT_COMMENT]-(reader)
RETURN DISTINCT author

Объяснение запроса:

  1. MATCH (author:Author),(reader:Reader {email:'specific@user.email'}) - как вы заявили, вам нужноотправьте запрос конкретному читателю, поэтому мы фильтруем читателей по электронной почте (например), также мы определяем author and reader «переменные» для использования позже.
  2. WHERE NOT (author)-[:REPLIED_TO_COMMENT]->(:ReaderComment)<-[:LEFT_COMMENT]-(reader) AND - вы пропустили комментарий Тип узла,Мы можем прочитать это следующим образом: Если автор не ответил ни на один комментарий, оставленный конкретным читателем

Надеюсь, это будет соответствовать вашим требованиям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...