orientdb select out().out() 返回两个相同的顶点?



>我在下面有一个测试图

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(,这是一个错误? 还是我用错了?

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

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

我知道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);

东方数据库版本:2.2.24

我的英语不是很好,谢谢阅读。

试试这个:

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

希望对你有帮助

问候

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

我。。。找到答案?

问题总是在问题提出后解决 - -b

有更好的方法吗?

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

最新更新