2016-05-02 3 views
0

Я хочу знать, есть ли способ Я могу Запросить полный график в OrientDB с помощью TRAVERSE * FROM V, не получая Edges as Objects. Потому что, используя ссылки во всех объектах, я получаю более 50 МБ данных из десятистрочного графика. Я использую драйвер orientjs. Мои данные выглядят так: OrientDB data Я использовал Json-Stringify-Safe для преобразования Json в строку.OrientDB Query full Graph without Edge Objects

ответ

1

Вы можете использовать

select *,out.asString(),in.asString() from (traverse * from V) fetchplan [*] in_*:-2 out_*: -2 

enter image description here

enter image description here

Надеется, что это помогает.

+0

Можете ли вы объяснить, почему вы добавляете fetchplan в конце? –

+1

Я добавляю fetchplan, чтобы не отображать из Studio IN ('myedge') и OUT («myedge») из вершин, как во втором запросе Michela. С NodeJS вы можете опустить fetchplan. –

0

Вы можете использовать это, чтобы исключить края, показанные в виде записей:

traverse * from V while @class NOT IN (select distinct(@class) from E) 

ПЕРЕД

enter image description here

ПОСЛЕ

enter image description here

Вы можете использовать это, чтобы исключить ребра из каждой записи, но он покажет вам края в виде записей:

select from (traverse * from V) fetchplan [*] in_*:-2 out_*: -2 

enter image description here

И это сочетание обоих запросов:

select from (traverse * from V while @class NOT IN (select distinct(@class) from E)) fetchplan [*] in_*:-2 out_*: -2 

enter image description here

Надеется, что это помогает

+0

Ваш второй запрос, выполненный в студии OrientDB, идеален, с двумя другими я не получаю никаких Edges. Но когда я выполняю второй запрос с моего сервера NodeJS, я снова получаю ссылки в пограничных объектах и ​​56 МБ данных. –