Я новичок в Neo4j, и у меня возникают проблемы с возвратом данных. Я работаю над проектом визуализации социальных сетей. Я хочу получить все соединения и отношения (CONNECTED_TO) на основе идентификатора корневого узла, чтобы затем я мог перебирать данные и создавать структуру данных для D3.Cypher, получить все узлы с и отношения для данной метки без дубликатов, пустые отношения или пустые узлы
Я пытался играть с большим количеством запросов в браузере. Текущий возвращает правильный результат в браузере с автоматическим завершением, но результат, возвращаемый в NodeJS, возвращает дубликаты и пустые отношения.
MATCH p=(a:Connection)-[r:CONNECTED_TO]-(b:Connection)-[r2:CONNECTED_TO]-()
WHERE id(a) = 1673
RETURN [a, b] as nodes [r, r2]
В приведенном ниже описании возвращается то, что я хочу, у него просто нет предложения WHERE. При добавлении пункта, где он возвращает только корень соединение и их непосредственные связи без всех отношений
MATCH (a:Connection)-[r:CONNECTED_TO]-(b:Connection)
RETURN [a, b] AS nodes, r AS relationship
набора данных средней части около 200 соединений и 2200 отношений поэтому производительность также и проблема иметь в разум.
Любая помощь была бы очень признательна.
UPDATE
Процедура расширения пути АПБО предложенный InverseFalcon работает отлично. Это очень эффективно по сравнению с использованием отношений переменной длины.
Вот результирующий запрос
MATCH (head:Connection)
WHERE id(head) = 1673
CALL apoc.path.expandConfig(head, {relationshipFilter:'CONNECTED_TO', uniqueness:'NODE_GLOBAL', bfs: true}) YIELD path
WITH LAST(NODES(path)) as a
MATCH (a)-[r:CONNECTED_TO]->(b)
RETURN [a, b] as nodes, r as relationship
Отличный ответ InverseFalcon, очень хорошо вместе. Спасибо, что указал мне в правильном направлении. Некоторые из процедур APOC будут очень хорошо работать с другими функциями, которые я запланировал для этого проекта. –