Я использую Amazon Neptune со следующей простой схемой графа:
root --has--> child
где корневая вершина может иметь много разных свойств.
Мне нужен запрос, который создает словарь, включающий все свойства корневой вершины в качестве ключей и массив всех дочерних вершин с одинаковым значением.
например со следующими данными:
{
root: {
a: 1
b: 2
c: 3
},
child1: {
a: 4
b: 2
c: 3
},
child2: {
a: 1
b: 4
c: 3
}
}
Получу такой результат:
{
a: [child2],
b: [child1],
c: [child1, child2]
}
Когда я знаю свойства, я могу сделать что-то вроде этого:
g.V().hasLabel('Root').as('root')
.project('a', 'b', 'c')
.by(out('has').where(eq('root')).by('a').fold())
.by(out('has').where(eq('root')).by('b').fold())
.by(out('has').where(eq('root')).by('c').fold())
есть ли способ создать это, не зная свойств корня?