Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Orientdb 如何获取连接Orient db中两个特定顶点的边_Orientdb - Fatal编程技术网

Orientdb 如何获取连接Orient db中两个特定顶点的边

Orientdb 如何获取连接Orient db中两个特定顶点的边,orientdb,Orientdb,我尝试过文档和控制台,但没有找到一种方法来实现这一点 具有特性A的顶点、具有特性B的顶点和具有连接标签的边 我想找出连接这两个顶点的边,并得到边的id 我没能做到这一点。我能行 select from (SELECT EXPAND(BOTH('Connected')) FROM Tag WHERE prop='A') where prop='B' 但我需要得到优势@rid。如果我把两者都改为两者,那么我怎么能特别要求带有B道具的标签呢 我也尝试过这样做: SELECT FROM Connect

我尝试过文档和控制台,但没有找到一种方法来实现这一点

具有特性A的顶点、具有特性B的顶点和具有连接标签的边

我想找出连接这两个顶点的边,并得到边的id

我没能做到这一点。我能行

select from (SELECT EXPAND(BOTH('Connected')) FROM Tag WHERE prop='A') where prop='B'
但我需要得到优势@rid。如果我把两者都改为两者,那么我怎么能特别要求带有B道具的标签呢

我也尝试过这样做:

SELECT FROM Connected WHERE IN=(SELECT FROM TAG WHERE prop = 'A') AND OUT = (SELECT FROM TAG WHERE prop = 'B')
但我没有从中得到任何东西

更新:

这就解决了问题,但难道没有更直接的方法吗?我想这会扫描带有给定标签的所有边。

试试这个查询

select from Connected where out in (select from Tag WHERE prop = 'B' ) and in in (select from Tag WHERE prop = 'A' )
试试这个:

1:

2:

2b:


我不确定哪一个是最快的,您必须尝试一下,因为它取决于您的数据库和查询的其他部分。2b比2快,但只需极小的边距。

从连接的where out in select from Tag where Tag='testTagA'和in in select from Tag where Tag='testTagB'或out in select from Tag where Tag='testTagB'和in in select from Tag where Tag='testTagA'这样做的技巧是肯定的。看起来有点过分,所以我想一定有更好的办法?否则,我将接受您的回答SELECT FROM Connected WHERE IN=SELECT FROM TAG WHERE prop='A'和OUT=SELECT FROM TAG WHERE prop='B'不返回结果,因为SELECT FROM TAB WHERE prop='A可以返回多个顶点。您也可以使用此查询从标记中选择outEConnected[in.prop=A],其中prop=b这是一个正确的答案,但我确实认为我们正在扫描所有连接的节点,而不是从图形节点A开始。我不知道no.1如何扫描。我现在也没有db条目,所以无法判断。是的,我们是。No.1扫描所有标记节点,这并不一定更好。如果您没有访问id的权限,最好的方法是在Tag.prop上使用索引。这样可以很快完成内部选择,这肯定是最快的解决方案。鉴于我的道具上有索引,你的建议是使用1号?当然,只要确保内部选择使用索引,它肯定会更快。
select from Connected where out in (select from Tag WHERE prop = 'B' ) and in in (select from Tag WHERE prop = 'A' )
SELECT FROM (
    SELECT EXPAND(BOTHE('Connected')) FROM Tag WHERE prop='A'
) WHERE in.prop='B' or out.prop='B'
SELECT FROM Connected 
WHERE (in.prop = 'A' AND out.prop = 'B') OR (in.prop = 'B' AND out.prop = 'A')
SELECT FROM Connected 
LET $inProp = in.prop, $outProp = outProp = out.prop 
WHERE ($inProp = 'A' AND $outProp = 'B') OR ($inProp = 'B' AND $outProp = 'A')