AQL学习笔记(五)--连接文档

本文介绍如何在ArangoDB中优化角色文档的特质字段,通过创建独立的Traits集合,实现更高效的数据管理和查询。详细展示了如何创建Traits集合,写入数据,并通过查询将Character文档中的字符特质与Traits集合连接,提高数据的可读性和维护性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(本小结用到的数据在ArangoDB学习笔记(二)--文档的创建中已创建)

Character集合中每个文档都有一个traits字段,其值是字符列表,这样使得文档非常简洁,但是读者无法理解每个字符所代表的含义。

如果我们直接表示traits,文档则会很庞大难以维护。

下面两个模型形象的解释了上面两种情况,模型1表示直接将traits记录在文档中,模型2表示将traits和文档分开,在文档中用字符来表示traits,而traits独立成另一个Collection,最后将Character和Traits连接。

首先创建traits集合。

然后写入数据,

[
{ "_key": "A", "en": "strong", "de": "stark" },
{ "_key": "B", "en": "polite", "de": "freundlich" },
{ "_key": "C", "en": "loyal", "de": "loyal" },
{ "_key": "D", "en": "beautiful", "de": "schön" },
{ "_key": "E", "en": "sneaky", "de": "hinterlistig" },
{ "_key": "F", "en": "experienced", "de": "erfahren" },
{ "_key": "G", "en": "corrupt", "de": "korrupt" },
{ "_key": "H", "en": "powerful", "de": "einflussreich" },
{ "_key": "I", "en": "naive", "de": "naiv" },
{ "_key": "J", "en": "unmarried", "de": "unverheiratet" },
{ "_key": "K", "en": "skillful", "de": "geschickt" },
{ "_key": "L", "en": "young", "de": "jung" },
{ "_key": "M", "en": "smart", "de": "klug" },
{ "_key": "N", "en": "rational", "de": "rational" },
{ "_key": "O", "en": "ruthless", "de": "skrupellos" },
{ "_key": "P", "en": "brave", "de": "mutig" },
{ "_key": "Q", "en": "mighty", "de": "mächtig" },
{ "_key": "R", "en": "weak", "de": "schwach" }
]

在queries中写入如下语句,然后执行。

然后在COLLECTIONS中的Traits可以看到写入的数据,

我们先查看Ned的traits有哪些,

返回结果如下,

然后我们再看下每个字符所代表的含义,

返回结果如下,

只想看对应字符的标签可使用如下方法,

结果如下,

上面将Traits和对应字符连接起来了,现在我们将Character文档中的字符用Traits对应单词代替显示。也就是将character文档和traits文档融合。

结果如下,traits中的字符被代替了。

MERGE函数可以将对象重写,在character文档中也有traits属性,因此MERGE函数中的参数{traits:}可以代替character文档中的traits。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值