Arangodb——操作案例一

文章讨论了如何在ArangoDB中使用边缘文档来表示家庭关系,如ChildOf,以及执行图查询来查找家庭成员。此外,还展示了如何处理航班数据,包括从特定机场出发的航班和到达特定机场的航班查询。

家庭关系

  • 使用前面 Characters 和 Traits 文档,创建所需的边文档以将这些关系存储在数据库
    • 创建 ChildOf 边缘文档
      • ChildOf.json
        • [{"_key":"279410","_id":"ChildOf/279410","_from":"Characters/266693","_to":"Characters/265323","_rev":"_fk1jx6y---"},{"_key":"279411","_id":"ChildOf/279411","_from":"Characters/266691","_to":"Characters/265323","_rev":"_fk1jx62---"},{"_key":"279412","_id":"ChildOf/279412","_from":"Characters/266692","_to":"Characters/265323","_rev":"_fk1jx62--A"},{"_key":"279413","_id":"ChildOf/279413","_from":"Characters/266695","_to":"Characters/265323","_rev":"_fk1jx62--C"},{"_key":"279414","_id":"ChildOf/279414","_from":"Characters/266693","_to":"Characters/266684","_rev":"_fk1jx62--E"},{"_key":"279415","_id":"ChildOf/279415","_from":"Characters/266691","_to":"Characters/266684","_rev":"_fk1jx62--G"},{"_key":"279416","_id":"ChildOf/279416","_from":"Characters/266692","_to":"Characters/266684","_rev":"_fk1jx62--I"},{"_key":"279417","_id":"ChildOf/279417","_from":"Characters/266695","_to":"Characters/266684","_rev":"_fk1jx62--K"},{"_key":"279418","_id":"ChildOf/279418","_from":"Characters/266690","_to":"Characters/265323","_rev":"_fk1jx66---"},{"_key":"279419","_id":"ChildOf/279419","_from":"Characters/266683","_to":"Characters/266700","_rev":"_fk1jx66--A"},{"_key":"279420","_id":"ChildOf/279420","_from":"Characters/266685","_to":"Characters/266700","_rev":"_fk1jx66--C"},{"_key":"279421","_id":"ChildOf/279421","_from":"Characters/266698","_to":"Characters/266700","_rev":"_fk1jx66--E"},{"_key":"279422","_id":"ChildOf/279422","_from":"Characters/266696","_to":"Characters/266685","_rev":"_fk1jx66--G"},{"_key":"279423","_id":"ChildOf/279423","_from":"Characters/266696","_to":"Characters/266683","_rev":"_fk1jx66--I"}]
    • 循环遍历边缘文档
  • AQL 检索
    • OUTBOUND
      • 从一个顶点开始,沿着边到其他顶点
        • FOR c IN Characters FILTER c.name == "Bran" FOR v IN 1..1 OutBOUND c ChildOf RETURN v.name
        • FOR v IN 1..1 属于顶点的深度数
    • INBOUND
      • 沿反向边缘方向
    • 通过父母名称查找子女,去重复数据
      • OPTIONS { uniqueVertices: "global", order: "bfs" ,bfs:"true"}

      • uniqueVertices: "global"设置会在早期抑制重复顶点。
        • 与 DISTINCT 可替换

 美国机场和航班地图

  • 创建文档
  • 图查询
    • 返回可以从洛杉矶国际机场 (LAX) 沿航班边缘直接到达(第一步)的所有机场的名称
      • WITH airports FOR airport IN 1..1 OUTBOUND 'airports/LAX' flights RETURN DISTINCT airport.name
    • 返回任意 10 个航班文件以及从LAX起飞的航班和目的地机场文件
      • WITH airports FOR airport, flight IN OUTBOUND 'airports/LAX' flights LIMIT 10 RETURN {airport,flight}
    • 返回 10 个航班号,飞机降落在 Bismarck Municipal Airport (BIS)。
      • WITH airports FOR airport, flight IN INBOUND 'airports/BIS' flights LIMIT 10 RETURN flight.FlightNum
    • 查找1月5日和7日从BIS起飞或降落的所有连接,并返回目的地城市和世界标准时间(UTC)的到达时间。
      • WITH airports FOR airport, flight IN ANY 'airports/BIS' flights FILTER flight.Month == 1 AND flight.Day >= 5 AND flight.Day <= 7 RETURN { city: airport.city, time: flight.ArrTimeUTC }

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值