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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_27668313/article/details/87073414

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

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

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

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

首先创建traits集合。

扫描二维码关注公众号,回复: 5766795 查看本文章

然后写入数据,

[
{ "_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。

猜你喜欢

转载自blog.csdn.net/qq_27668313/article/details/87073414
今日推荐