OrientDB Edge upsert问题

时间:2016-10-06 17:05:05

标签: orientdb

当我尝试使用以下语法更新/ UPSERT边缘时:

更新关系设置= = 123,out =#456 upsert其中in =#123 and out =#456

创建边缘,但不填充“顶点进出”属性,这意味着图形不可遍历(并且只是浏览器中浮动顶点的集合)。

这与基本的CREATE命令形成对比,该命令按预期工作:

从#123到#456

创建边缘关系

如何让UPDATE / UPSERT版本正确填充Vertex属性?

2 个答案:

答案 0 :(得分:0)

UPDATE EDGE不支持UPSERT,请参阅issue #4436

答案 1 :(得分:0)

从3.0.1版开始,您可以对边缘使用“ upsert”,它可以正常工作-但您需要执行以下操作:

在edge_class(出,进)上创建唯一索引,而且–很奇怪–顺序很重要! 为此,您需要先创建in和out属性,否则db无法创建索引,并且在尝试运行命令“ Create index”时会出现异常。 然后,使用命令CREATE EDGE UPSERT FROM TO。

在这种情况下,仅当边缘不存在时才创建边缘,它将为顶点类创建in和out属性。

但是对于UPDATE命令'cos来说,它仍然不起作用,正如作者所说,“ UPDATE / UPSERT在文档级别起作用,因此它不会从顶点创建连接。使用它,您将有一个残破的图”,并且它仍然相同。