如何使用OrientDB中的LINKSET添加,删除和检查是否存在?

时间:2014-03-28 14:16:22

标签: orientdb

我正在使用OrientDB服务器端Javascript函数来定义业务逻辑。我的查询是如何使用LINKSET在OrientDB的Javascript函数中添加,删除和检查是否存在?

例如,如果我的公司雇员= [#4:1,#4:5,#4:3]

  1. 如何将#4:6添加到linkset?添加后应该是[#4:1,#4:5,#4:3,#4:6]

  2. 如何从链接集中删除#4:5?删除后应该是[#4:1,#4:3,#4:6]

  3. 如果我再次将#4:1添加到linkset,它会检查重复并返回错误,还是在添加到linset之前是否需要检查有问题?如果我需要这样做,该怎么做?

  4. 我确信必须有一些方法来添加,删除和检查linkset& linkmap,我不仅仅知道这些。

    任何指针都会有所帮助。

2 个答案:

答案 0 :(得分:7)

查看官方文档:https://github.com/orientechnologies/orientdb/wiki/SQL-Update#example-3-add-a-value-into-a-collection。所以:

1)如果你的记录有RID#13:33:

update #13:33 add company.employees = #4:6

2)相同(https://github.com/orientechnologies/orientdb/wiki/SQL-Update#example-4-remove-a-value-from-a-collection):

update #13:33 remove company.employees = #4:5

3)使用set,你不能有重复,所以如果你多次添加同一个项目,它就会被忽略而没有错误。

答案 1 :(得分:1)

根据this post,OrientDB v3.0中的语法已更改:

现在,要将元素添加到链接集中,您需要使用此处的串联语法。 http://orientdb.com/docs/3.0.x/sql/SQL-Syntax.html在数组串联中

因此您的添加示例为:

update #13:33 set company.employees= company.employees || #4:5

删除没有更改,因此语法仍然:

update #13:33 remove company.employees = #4:5