如何 select 一条边从它连接的两个顶点

How to select an edge from the two vertices it connects

我想弄清楚从它连接的两个顶点中选择一条边的格式。

边在 class 'Connection' 中并连接两个 'Node' class 顶点。源节点是#11:6(唯一索引字段 ip = '10.64.32.100'),目标节点是 #11:7(ip = '10.79.215.231')。 Connection class 在其 Connection.in 和 Connection.out 属性上有一个 UNIQUE 索引。

我尝试了以下查询,所有 return 都是一个空集:

SELECT FROM Connection WHERE OUT(Node) = (SELECT FROM Node WHERE ip = '10.64.32.100')

SELECT FROM Connection WHERE (SELECT FROM Node WHERE ip = '10.64.32.100') IN OUT(Node)

SELECT FROM Connection WHERE #11:6 IN OUT(Node)

SELECT FROM Connection WHERE OUT(Node) = #11:6

我已经检查以确保 SELECT Node 语句确实 return 正确删除 (#11:6)

更大的上下文正在更新边class'Connection'中的时间字段。连接有一个 EMBEDDEDLIST 时间戳。使用pyorient,调用代码为:

try:
   client.command("CREATE EDGE Connection FROM {0} TO {1} CONTENT {2}".format(src_str, dst_str, edge_cont))
except pyorient.exceptions.PyOrientORecordDuplicatedException:
   client.command("UPDATE Connection ADD times = {0} WHERE {1}".format(time_list, <<!!QUERY GOES HERE!!>>)

正如你从上面看到的,因为我使用捕获的异常来触发更新,我没有已经存在的唯一索引连接的@rid,因此我需要一个SELECT语句来指定我想向哪个 Connection 对象添加新时间。另一种解决方案是弄清楚如何 return 已经存在的 Connection 的@rid(如果存在)。我也不知道怎么做。

谁能帮我找到正确的 SELECT 语句 return 仅使用两个连接顶点的所需边?

试试这个查询:

SELECT FROM Connection WHERE OUT = #11:6 AND (SELECT @rid FROM Node WHERE ip = "10.79.215.231") IN IN

希望对您有所帮助。