Навигация по цепочке в OrientDB

Предыстория:

Я новичок в OrientDB, я буду тестировать его на Java в течение нескольких дней, чтобы убедиться, что это та БД, которая мне нужна.

Контекст:

Предположим, у вас есть что-то похожее на LinkedList, но с вершинами и (O) ребрами (-):

O - O - O - O - O - O - O - O

Каждая вершина имеет поле с именем «имя» и ребро с надписью «лучший друг».

Вопрос:

Мне нужно напечатать имена всех вершин «цепочки». Есть ли способ или метод API для быстрой навигации по всему списку со сложностью ‹ O (n)?

Спасибо


person Fdiazreal    schedule 08.05.2013    source источник


Ответы (1)


Попробуйте что-то вроде:

select name from ( traverse out('bestFriend') from #10:44 )

Предположим, что #10:44 — это идентификатор корневой вершины.

person Lvca    schedule 08.05.2013
comment
Спасибо за ваш ответ. Как я могу добиться того же от Java? Может быть, используя объект OTraverse? - person Fdiazreal; 09.05.2013
comment
OTraverse traverse = orientGraph.traverse(); for(OIdentifier obj : traverse.field(in).field(out_bestFriend).target(new ORecordId(#10:44)).execute()){ System.out.println(obj); } - person Camilo Casadiego; 02.05.2015