OrientDb:通过功能进行图形可视化?

时间:2016-05-13 17:17:26

标签: function graph 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 个答案:

答案 0 :(得分:1)

您需要使用expand

在图形编辑器中调用如下:

select expand(SearchProvince("ONTARIO"))

伊万