2016-12-10 4 views
0

У меня есть каталог, как древовидная структура в OrientDB:OrientDB: Запрос дерево

Node (имя = 'а') -> Подключение-> Node (имя = 'Ъ') -> Подключение-> Node (имя = 'C')

create class Node extends V 
create class Connection extends E 

let a = create vertex Node set name = 'a' 
let b = create vertex Node set name = 'b' 
create edge Connection from $a to $b 
let c = create vertex Node set name = 'c' 
create edge Connection from $b to $c 

Как я могу выбрать узел (имя = 'C'), если я знаю, что путь 'а' -> 'Ь' -> 'с'?

Имейте в виду, что все имена могут быть равны на разных уровнях иерархии: например, вместо «a», «b», «c» это могут быть «a», «a», «a», но все узлы разные.

ответ

2

попробовать

SELECT expand(o) from 

(MATCH 
{ 
class: Node, 
where: (name='a') 
} 

.out('Connection') 

.out('Connection') 
{ 
as: o 
} 

RETURN o) 

или без MATCH

select expand(out('Connection').out('Connection')) from Node where name='a' 

это то, что вы ищете?

Смежные вопросы