Как сопоставить узлы с более чем 1 из указанных отношений - PullRequest
0 голосов
/ 30 апреля 2019

Я пытаюсь найти все базовые узлы в Neo4j, где на это указывает более 1 отношения GOLDSOURCEFEED.И мне все равно, какой тип узла имеет отношения.Вот базовый запрос, чтобы вы могли видеть переменные узла и т. Д.

MATCH (p:Datum)<-[:GOLDSOURCEFEED]-()
WHERE exists ( (p:Datum)<-[:GOLDSOURCEFEED]-() )
RETURN p.name

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

Ответы [ 2 ]

0 голосов
/ 30 апреля 2019

Вы должны использовать эффективную проверку степени защиты:

MATCH (p: Datum)
WHERE SIZE((p)<-[:GOLDSOURCEFEED]-()) > 1 
RETURN p.name;

Проверка степени готовности просто использует данные, уже доступные для каждого узла, и не требует фактического получения путей. Можно выполнить проверку степени готовности, если вам не важен узел на противоположном конце отношения или какие-либо свойства отношения.

0 голосов
/ 30 апреля 2019

Я бы посчитал количество отношений как count (r), а затем поместил бы это как условие для фильтрации более 1 GOLDSOURCEFEED.

MATCH (p: Datum) <- [r: GOLDSOURCEFEED] - ()  
WITH p,  count(r) as cnt 
WHERE cnt > 1 
RETURN p.name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...