1

我有 2 个边缘创建问题。

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

MATCH (a {id:'zz'}),(b {id:'yy'})
CRAETE UNIQUE (a)-[r:REL {'id': 'xx'}]->(b)

因此,如果ab不存在,则不会创建边。

有没有办法做这样的事情?在检查ab是否存在之前进行选择是不好的,因为顶点可以在前面的批处理命令中创建,因此不存在于 db 中,因此它必须是 osql 命令的一部分。

其次,与这个问题相关,我想我可以构建一个脚本,这样我就可以将同时查找ab的选择分配给一个变量。

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

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

4

1 回答 1

2

它将从 v. 2.1.7 开始提供

https://github.com/orientechnologies/orientdb-docs/blob/master/SQL-batch.md#conditional-execution

于 2015-12-03T12:28:47.290 回答