Joining together
MERGE(),collection之间的document关联
- 案例
假如现在让Characters的traits字段和Traits中的数据相关联
- step1 各自创建集合
Characters
Traits
- step2 添加数据
LET data = [
{ "name": "Robert", "surname": "Baratheon", "alive": false, "traits": ["A","B","D"] },
{ "name": "Jaime", "surname": "Lannister", "alive": true, "age": 36, "traits": ["A","E","B"] },
{ "name": "Catelyn", "surname": "Stark", "alive": false, "age": 40, "traits": ["D","B","A"] },
{ "name": "The High Sparrow", "alive": true, "traits": ["A","B","D","E"] }
]
FOR d IN data
INSERT d INTO Characters
let data = [
{ "_key": "A", "en": "strong", "de": "stark" },
{ "_key": "B", "en": "polite", "de": "freundlich" },
{ "_key": "D", "en": "loyal", "de": "loyal" },
{ "_key": "E", "en": "weak", "de": "schwach" }
]
FOR d IN data
INSERT d INTO Traits
- step3 只关注traits字段 与 en关联,并且让其显示
FOR c IN Characters
RETURN MERGE(c, { traits: DOCUMENT("Traits", c.traits)[*].en })
- step4 traits字段和en,de关联
FOR c IN Characters
RETURN MERGE(c, { traits: (for t in DOCUMENT("Traits", c.traits) RETURN {en:t.en,de:t.de})} )
补充
- It can be used to return a static value, such as a string:
return "hello arangodb!"
- 删除两个文档中所有的文件,并返回true
LET r1 = (FOR u IN teacher REMOVE u IN teacher)
LET r2 = (FOR u IN student REMOVE u IN student)
RETURN true
- 降序 (我们可以用DESC降序来反转排序顺序:)
FOR c IN Characters
SORT c.name DESC
LIMIT 10
RETURN c.name