【问题标题】:How to store edges in an ordered way in OrientDB with pyorient如何使用pyorient在OrientDB中以有序的方式存储边
【发布时间】:2018-07-12 05:52:28
【问题描述】:

我想使用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 做同样的事情,但我所看到的文档都没有暗示这是可能的。

【问题讨论】:

    标签: orientdb pyorient


    【解决方案1】:

    实现此目的的一种巧妙方法(可能是唯一方法)是使用 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]
    """)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      相关资源
      最近更新 更多