加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

join – ArangoDB链接文档

发布时间:2020-12-12 06:30:25 所属栏目:MsSql教程 来源:网络整理
导读:是否可以链接ArangoDB中不同集合中的文档,就像它在OrientDB中一样? 在OrientDB中,您可以创建LINK类型的字段并指定链接的类型.这就形成了两个文件之间的关系. 我是否必须使用边集合在ArangoDB中执行此操作? 我正在尝试定义一个主集合和一个辅助集合,其中包含
是否可以链接ArangoDB中不同集合中的文档,就像它在OrientDB中一样?

在OrientDB中,您可以创建LINK类型的字段并指定链接的类型.这就形成了两个文件之间的关系.

我是否必须使用边集合在ArangoDB中执行此操作?

我正在尝试定义一个主集合和一个辅助集合,其中包含额外的信息以补充主要集合.我不想拥有主集合中的所有数据,因为这是在其他实体之间共享的.

提前致谢.

解决方法

实际上有两种选择:

>使用联接

您可以在主文档上定义一个属性,该属性包含标识子文档的信息(例如,通过其_key),然后使用AQL连接查询中的两个文档:

FOR x IN maindocuments
FILTER x.whatever< 42
对于二级文件
FILTER x.sub = y._key
返回合并(x,y)

>使用边缘

您可以定义包含文档之间所有“关系”的边集合.边缘文档还可以选择边缘本身的附加信息.

for ma in maindocuments
LET n = NEIGHBORS(“maindocuments”,“edgecollection”,x._id,“any”);
RETURN MERGE(x,n [0] .vertex);

但是在ArangoDB中没有像外键约束这样的东西.您可以参考边缘中的不存在的文档或删除子文档而不通知主文档.

第二种方法的好处是,您可以在这些文档之间使用任意数量的边,甚至在应用程序运行期间决定0,1或更多,而无需任何修改.使用第一种方法,您必须首先通过使属性为单个值或值列表来确定.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读