2016-05-13 8 views
0

以下はユースケースです:私たちはビジネスユーザにOrientDBビジュアライゼーションツールを公開したいと思います。このようにして、データ自体を照会することができます。データモデルの複雑さを隠すために、埋め込みクエリーを使用して事前定義された関数を作成するとよいと考えました。OrientDb:関数によるグラフの可視化?

例1:SearchCity(パラメータ:都市名) 例2:SearchProvince(パラメータ:州名)と、その地域

に関連するすべての接続の国や都市を表示

はここで、一般的な例であり、問題:残念ながら、ビジュアライゼーションツールでは、単一の円内に@ridを表示しますが、リンクオブジェクトとして表示することはできません。

質問:グラフビジュアライゼーションツールからSELECTを呼び出してすべての分岐を表示できる関数を作成することはできますか?

Orientdbバージョン:2.2 RC1以下

である私のテストデータ:

データ:

CREATE CLASS xCOUNTRY EXTENDS V; 
CREATE CLASS xPROVINCE EXTENDS V; 
CREATE CLASS xCITY EXTENDS V; 
CREATE CLASS part_of EXTENDS E; 
CREATE VERTEX xCOUNTRY SET COUNTRY_ID=1,COUNTRY_NAME='CANADA'; 
CREATE VERTEX xPROVINCE SET PROVINCE_ID=1.1,PROVINCE_NAME='ONTARIO',COUNTRY_ID=1; 
CREATE VERTEX xCITY SET CITY_ID=1.11,CITY_NAME='TORONTO',PROVINCE_ID=1.1; 
CREATE VERTEX xCITY SET CITY_ID=1.12,CITY_NAME='OTTAWA',PROVINCE_ID=1.1; 
CREATE EDGE part_of from (select from xCOUNTRY Where COUNTRY_ID =1) to (select from xPROVINCE Where COUNTRY_ID=1); 
CREATE EDGE part_of from (select from xPROVINCE Where PROVINCE_ID =1.1) to (select from xCITY Where PROVINCE_ID=1.1); 

機能:

名:SearchProvince(パラメータ "prov_name")

var db = orient.getGraph(); var x = db.command('sql',"TRAVERSE BOTH() 
FROM (SELECT FROM XPROVINCE WHERE PROVINCE_NAME= '"+ prov_name + "') 
LIMIT 20"); return x; 

答えて

1

あなたは、このようなグラフエディタの呼び出しにexpand

を使用する必要があります。

select expand(SearchProvince("ONTARIO")) 

イワン

+0

こんにちはイワン、EXPANDコマンドのおかげで、それは働きました! – RLx

関連する問題