OrientDB在批处理/脚本中创建边缘问题

OrientDB在批处理/脚本中创建边缘问题,orientdb,orientdb-2.1,Orientdb,Orientdb 2.1,我有两个边创建问题 首先,我使用批处理命令创建一组顶点和边。有时,在尚未创建的顶点之间创建边和边(这取决于输入顺序,目前无法控制)。当然,Orient服务器会抛出异常,而不是无声地失败。我找不到一种方法告诉它跳过它或避免创建边缘。在Neo4j中,您可以执行以下操作: MATCH (a {id:'zz'}),(b {id:'yy'}) CRAETE UNIQUE (a)-[r:REL {'id': 'xx'}]->(b) 因此,如果a或b不存在,则不会创建边 有没有办法做到这一点?在检查a

我有两个边创建问题

首先,我使用批处理命令创建一组顶点和边。有时,在尚未创建的顶点之间创建边和边(这取决于输入顺序,目前无法控制)。当然,Orient服务器会抛出异常,而不是无声地失败。我找不到一种方法告诉它跳过它或避免创建边缘。在Neo4j中,您可以执行以下操作:

MATCH (a {id:'zz'}),(b {id:'yy'})
CRAETE UNIQUE (a)-[r:REL {'id': 'xx'}]->(b)
因此,如果ab不存在,则不会创建边

有没有办法做到这一点?在检查ab是否存在之前进行选择是不好的,因为顶点可以在以前的批处理命令中创建,因此不会出现在数据库中,因此它必须是osql命令的一部分

第二个,与此问题相关,我想我可以构建一个脚本,以便将同时查找ab的select分配给一个变量

BEGIN
LET source = SELECT FROM V WHERE id = 'zz'
LET target = SELECT FROM V WHERE id = 'yy'
<< some sort of condition based on source != null and target != null? >>
LET edge = CREATE EDGE REL FROM $source TO $target
COMMIT
开始
让source=从V中选择,其中id='zz'
让target=从V中选择,其中id='yy'
>
LET edge=创建从$source到$target的edge REL
犯罪

是否可以基于源和目标的条件发出创建命令?。如果是这样,这将解决这两个问题。

它将从v。2.1.7