2016-05-13 20 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