Мне нужно выполнить сгруппированный агрегат по свойству вершин определенного класса, однако группа по полю является вершиной в двух шагах от моего текущего узла, и я не могу заставить ее работать.Группа OrientDB по запросу с использованием графика
Моего случая: Вершина А содержит свойство я хочу агрегировать и разговаривает п числа вершин с меткой references
. Вершиной, которую я хочу сгруппировать, является любая из этих вершин (B, C или D) , если эта вершина имеет ребро defined by
до вершины F.
A ----references--> B --defined by--> E
\---references--> C --defined by--> F
\--references--> D --defined by--> G
...
Запрос я думал, что будет работать это:
select sum(property), groupOn from (
select property, out('references')[out('definedBy')[email protected] = F] as groupOn from AClass
) group by groupOn
Но это не работает, внутреннее утверждение дает мне странный ответ, который не является правильным (не возвращает вершины), и я подозреваю, что out()
не поддерживается для условий брекет (причина [email protected]
в том, что документы, которые я нашел заявил, что только «=» поддерживаются.
out('references')[out('definedBy') contains F]
не работает, либо, что возвращает out('definedBy')
для т он $current
vertex).
Любой, у кого есть идея, как этого добиться? В моем примере результат, который мне нужен, - это свойство в одном столбце и @rid вершины C в другом. Затем я могу с радостью выполнить свою группу по агрегатам.