AQL-有望在Arangodb中加入,以及如何加入?

2019年12月9日 19点热度 0条评论

我的环境

ArangoDB版本:3.5.2(我认为是最新的)
存储引擎:RocksDB
部署方式:单服务器
部署策略:手动启动
基础设施:自有
作业系统:Ubuntu 16.04
机器中的总RAM:8GB
使用的磁盘:256GB

问题:
我有2个集合,我必须执行连接,并希望预期的结果是可能在Arangodb中实现的?

collection 1 :[
                { id :1 , name: "jack" },
                { id :2 , name: "ryan" },
                { id :3 , name: "sam" },
                { id :4 , name: "rick" },
                { id :5 , name: "jackie" },
                { id :6 , name: "roman" },
                { id :7 , name: "soul" },
                { id :8 , name: "brad" }
              ]  
collection 2 :[
                 { id :1 ,age:12 ,standard: 5 },
                 { id :5 ,age:14 ,standard: 7 },
                 { id :7,age:15 ,standard: 8 }
              ]

预期结果:

[
        { id :1 , name: "jack",standard: 5  },
        { id :2 , name: "ryan",standard: 5  },
        { id :3 , name: "sam" ,standard: 5 },
        { id :4 , name: "rick",standard: 5  },
        { id :5 , name: "jackie",standard: 7  },
        { id :6 , name: "roman",standard: 7  },
        { id :7 , name: "soul",standard: 8  },
        { id :8 , name: "brad",standard: 8  }
]

解决方案如下:

你可以试试

FOR item in collection_1
    FOR item2 in collection_2
        FILTER item.id == item2.id
        RETURN MERGE(item, item2)

您可以检查文档:
https://www.arangodb.com/docs/stable/aql/examples-join.html