orientdb选择out()。out()返回两个相同的顶点?

时间:2017-08-07 15:17:07

标签: orientdb orientdb2.2

我在下面有一个测试图

a_1 --- [e_a_b] ---> B_1

a_1 --- [e_a_b] ---> B_2

b_1 --- [e_b_c] ---> C_1

b_2 --- [e_b_c] ---> C_1

执行sql

select expand(out("e_a_b").out("e_b_c")) from v_a

返回两个相同的顶点(两个c_1),它是一个BUG?或者我用错了方法?

如何在我的测试数据c_1之后获得一个select expand(out("e_a_b").out("e_b_c")) from v_a

我的目的是统计朋友的朋友并按结果排序 我怎么能得到这个。

我知道traverse out("e_a_b", "e_b_c") from (select from v_a where name = "a_1")

但这只能得到一个v_a(a_1),

我需要v_a页面和关系关系的计数。

这是我的数据脚本

create class v_a extends v clusters 1;
create vertex v_a content {"name": "a_1"};
create class v_b extends v clusters 1;
create vertex v_b content {"name": "b_1"};
create vertex v_b content {"name": "b_2"};
create class v_c extends v clusters 1;
create vertex v_c content {"name": "c_1"};
create class e_a_b extends e clusters 1;
create edge e_a_b from (select from v_a) to (select from v_b);
create class e_b_c extends e clusters 1;
create edge e_b_c from (select from v_b) to (select from v_c);

OrientDB版本:2.2.24

我的英语不太好,谢谢阅读。

2 个答案:

答案 0 :(得分:0)

select name, set(out("e_a_b").out("e_b_c")).size() from v_a

我...找到答案?

问题出现后问题总是得到解决 - -b

更好的方法吗?

github https://github.com/orientechnologies/orientdb/issues/7620

答案 1 :(得分:0)

试试这个:

select distinct(@rid) from (select expand(out("e_a_b").out("e_b_c")) from v_a)

希望有所帮助

此致