Neo4j Как добавить несколько отношений с фильтром свойств каждого отношения? - PullRequest
0 голосов
/ 02 января 2019

MATCH (me)-[post_rel_source:FOLLOWS_TEAM|:FOLLOWS|:FOLLOWS_EVENT*0..1]->(user)

В таком случае, как я могу проверить различный «статус» всех 3 отношений?FOLLOWS_TEAM принял: 1 FOLLOWS принял: 1 FOLLOWS_EVENT не имеет никакого статуса.

Если я добавлю подобное, оно не будет работать для 'FOLLOWS_EVENT'

[post_rel_source:FOLLOWS_TEAM|:FOLLOWS|:EVENTS_OF_ORG*0..1{accepted:1}]

1 Ответ

0 голосов
/ 02 января 2019

[Изменено]

Этот фрагмент должен работать:

...
MATCH (me)-[r:FOLLOWS_TEAM|:FOLLOWS|:FOLLOWS_EVENT*0..1]->(user)
WHERE
  SIZE(r) = 0 OR
  TYPE(r[0]) = 'FOLLOWS_EVENT' OR
  r[0].accepted = 1
...

Примечание: поскольку ваш шаблон отношений допускает путь длины 0 (т. Е. Путь, где me и user - это один и тот же узел, и между ними нет соответствующих отношений), тест SIZE(r) = 0 обнаруживает и принимает этот случай (что, вероятно, то, что вы хотели).

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