我有两个边缘创建问题。
首先,我用批处理命令创建了一堆顶点和边。有时会在尚未创建的顶点之间创建边缘(它取决于输入顺序,现在无法控制)。当然,Orient服务器抛出异常而不是静默失败。我找不到告诉它跳过它或避免创建边缘的方法。在 Neo4j ,你可以这样做:
MATCH (a {id:'zz'}),(b {id:'yy'})
CRAETE UNIQUE (a)-[r:REL {'id': 'xx'}]->(b)
因此,如果 a 或 b 不存在,则不会创建任何边缘。
有没有办法做那样的事情?在检查是否存在 a 和 b 之前进行选择是不好的,因为顶点可以在上一个批处理命令中创建,因此不会出现在数据库中,所以它必须是osql命令的一部分。
第二次,与此问题相关,我想我可以构建一个脚本,以便我可以指定同时查找 a 和 b的选择变量。
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
是否可以根据源和目标上的条件发出创建命令?如果是这样,那将解决这两个问题。
答案 0 :(得分:2)