У меня есть структура, где узел либо "Leads_to" другой узел, либо "Colored_in" некоторого цвета. Отношение "Colored_in" и цвет являются просто упрощенной дополнительной информацией.
Теперь я хочу для каждого конечного узла относительно "Leads_to" всю информацию о родительских узлах, а также их дополнительную информацию по отношению "Colored_in",Чтобы упростить это, я приведу небольшой пример того, что я хочу:
CREATE (A:Key {name:'a'}),
(B:Key {name:'b'}),
(C:Key {name:'c'}),
(D:Key {name:'d'}),
(Black:Color {color:'black'}),
(Blue:Color {color:'blue'}),
(A)-[:Leads_to]->(B),
(A)-[:Leads_to]->(C),
(B)-[:Leads_to]->(D),
(A)-[:Colored_in]->(Black),
(B)-[:Colored_in]->(Blue),
(C)-[:Colored_in]->(Blue),
(D)-[:Colored_in]->(Black)
Этот код создаст следующую структуру:
A-->Black
/ \
/ \
Blue<--B C-->Blue
/
/
Black<--D
Это только приблизительно нарисовано и оба "синие"s и «Black» относятся к одному и тому же экземпляру «Blue» или «Black».
И в результате я хочу что-то вроде:
[{{name:'a',{color:'black'}; name:'b', {color:'blue'}; name:'d',{color:'black'}},
{{name:'a',{color:'black'}; name:'c', {color:'blue'}}]
Кроме того, цвет не может"Leads_to" что-то, ни быть "Colored_in" чем-то. Это всего лишь пример, реальный путь может быть намного длиннее. Кроме того, вложенный результат не обязательно должен быть в указанном выше формате, родители просто должны быть четко отделены друг от друга (например, ";") и должны быть в правильном порядке.
Редактировать:
Может быть, это помогает, что требуется не вся потенциальная информация из других отношений, а только из одного отношения, в данном случае "Colored_in", имя фиксировано, а свойства известны.