如何使用pyorient在OrientDB中以有序的方式存储边

时间:2018-02-01 19:50:28

标签: orientdb pyorient

我想使用pyorient API以有序的方式存储边缘。

根据过时的API page,有一些使用Java API的例子,例如。

person.createEdgeProperty(Direction.OUT, "Photos").setOrdered(true); 

等效于SQL:

orientdb> CREATE PROPERTY out_Photos LINKLIST
orientdb> ALTER PROPERTY User.out_Photos CUSTOM ORDERED=TRUE

我想使用pyorient做同样的事情,但我见过的文档都没有暗示这是可能的。

1 个答案:

答案 0 :(得分:0)

一种hacky方法,可能是唯一的方法,是使用command函数发出SQL查询。

对于已存在的边,这需要先删除所有边,然后创建LINKLIST边属性(参见下面的代码):

client.command("""
    CREATE PROPERTY Project.in_WorkedOn LINKLIST
    ALTER PROPERTY Project.in_WorkedOn CUSTOM ORDERED=TRUE
""")

然后添加所有边缘。默认情况下,排序将基于边缘创建顺序。

要设置顺序,请执行以下操作:

client.command("""
    UPDATE #120:1 SET in_WorkedOn = [#228:4, #229:2, #228:3, #229:3]
""")