我正在使用OrientDB(2.2.10),偶尔我想直观地检查我的数据集以确保我正确地做事情。在这个页面上OrientDB的http://orientdb.com/orientdb/你看到一个大图的一个很好的可视化下面的查询:OrientDB工作室的可视化图形
select * from V limit -1;
所以,我想相同的查询,我的数据集,但结果是如此极端低迷,我无法正常工作它。我的数据集不是非常大(几百个顶点,几千条边),但结果仍然不可行。我尝试了所有主流浏览器,但所有的结果都一样。另外我的电脑没有动力不足,我有一个四核i7 16GB内存。
作为一个非常简单的例子,我有以下图表: BAR --WITHIN ---> CITY --LOCATED_IN - >国家
这里:Find "friends of friends" with OrientDB SQL我能得到至少怎样一个例子在图上进行这种查询。我设法让我图的一个子集,举例如下:
select expand(
bothE('WITHIN').bothV()
) from Bar where barName='Foo' limit -1
该得到的我1条顶点,内边缘和城市顶点的图形。但是如果我现在想要进一步提取这个城市所在的国家,我就无法得到这种风格的查询来为我工作。我试过这个:
select expand(
bothE('WITHIN').bothV()
.bothE('LOCATED_IN').bothV()
) from Bar where barName='Foo' limit -1
这会导致显示相同的子集。但是,如果我首先运行第一个查询,然后不清除画布运行第二个查询,我会得到3个顶点。所以看起来我很接近,但我想获得所有3个顶点,并且它在一个查询中是边缘的,不必先运行一个然后再运行另一个。有人能指出我正确的方向吗?
感谢Oleksandr和Alessandro为你的答案。我今晚会试试他们,看看最适合我的是什么!我仍然在苦苦挣扎的是,你的两个解决方案看起来都很不一样,一个是“traverse”关键字,另一个是“unwind”关键字。我很难找到一个指导或教程,其中解释了这些概念,哪个更适合哪种情况。你可能有一些链接到一些在线资源,这些概念被解释?谢谢! –
http://orientdb.com/docs/last/SQL-Traverse.html/ http://orientdb.com/docs/last/SQL-Query.html#unwinding –
完美,感谢您的链接。这并不是完全清楚,但我在哪种情况下使用什么,但我想我只需要在这里建立一点经验:) –