Запрос для узлов с несколькими отношениями одного типа - PullRequest
1 голос
/ 06 декабря 2011

Я только начинаю узнавать о Neo4J, и я придумал вопрос, на который я не нашел ответа в чтении, которое я делал до сих пор.

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

Можно ли вернуть только те узлы, где число ребер отношения соответствует некоторым критериям?

Пример:

Друг - это узел.Poked - это отношения.

  • Друг A ткнул друга B
  • Друг A ткнул друга B
  • Друг B ткнул друга C

Как мне сделать запрос, чтобы был выбран только Друг А, потому что он ткнул одного и того же друга более одного раза?

Если это имеет значение;Я буду использовать Java и модуль Data Graph.

1 Ответ

1 голос
/ 06 декабря 2011

Я предполагаю, что вы хотите использовать Cypher.Кто бы не стал, верно?

Cypher не имеет SQL-эквивалента HAVING, поэтому вам придется немного поработать на вашем языке.Запрос будет выглядеть примерно так:

START friendA=node:person(name="Michael") 
MATCH friendA-[:POKED]->friendB 
RETURN friendB, count(*)

Теперь, из полученной итерируемой карты, исключите из окончательного результата все карты, где count (*) отличается от того, что вы хотите.

Имеет ли это смысл?

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