ArangoDB简单入门
创始人
2024-03-13 07:47:27
0

一、安装与启动

1、进入到某个目录 cd /home/neunhoef/
2 获取包 wget https://download.arangodb.com/arangodb34/Community/Linux/arangodb3-linux-3.4.1.tar.gz
3、解压 tar xzvf arangodb3-linux-3.4.1.tar.gz
4、将使用的命令放到path中 export PATH="/home/neunhoef/arangodb3-3.4.1/bin:$PATH"
(1、2、3、4步骤在所有机器都执行一边)
5、其中一台机器执行命令

arangodb --starter.mode cluster --starter.data-dir /home/neunhoef/data

其它机器执行命令

   arangodb --starter.data-dir=/home/neunhoef/data --starter.join 192.168.137.10(上面那台机器的ip)

6、访问地址 http://192.168.137.10:8529/,展示如下图就成功了
在这里插入图片描述

二、概念

database--相当于数据库中的库
collection:vertex collection(顶点,需要有_key属性,作为sharding依据)edge collection(边,在graph中用,需要有_key,id_,_from、_to等属性)--相当于数据库中的表
document--相当于数据库表中的行

三、导入测试数据数据

数据下载地址 https://www.arangodb.com/wp-content/uploads/2019/02/GraphCourse_DemoData_ArangoDB-2.zip
解压后在任意一台机器执行下面的导入命令

arangoimp --file /home/neunhoef/airports.csv --collection airports --create-collection true --type csv
arangoimp --file /home/neunhoef/flights.csv --collection flights --create-collection true --type csv --create-collection-type edge

导入成功后collections中会有如下图
在这里插入图片描述

四、Aql介绍

aql就是在arangodb中执行的语句

1 语句格式介绍

  FOR vertex[, edge[, path]]IN [min[..max]]OUTBOUND|INBOUND|ANY startVertexedgeCollection[, more…]OPTIONS{...}FOR有三个参数vertex (object): 遍历中的当前顶点edge (object, optional): 遍历中的当前边path (object, optional): 两个对象的路径表示IN min…max:定义遍历的最小深度和最大深度。如果未指定,默认为1OUTBOUND/INBOUND/ANY:定义搜索的方向edgeCollection:保存在遍历中要考虑的边缘的集合的一个或多个名称OPTIONS 可选项uniqueVertices:可选地确保顶点唯一性,有三个值:"path" - 保证没有路径返回一个重复的顶点"global" - 保证在遍历期间每个顶点最多被访问一次,无论从起始顶点到这个顶点有多少路径。注意:使用此配置,结果不再是确定性的。如果从startVertex到顶点有多条路径,则选择其中一条路径。"none"(默认) - 不对顶点应用唯一性检查uniqueEdges:可选地确保边缘唯一性,有三个值:"path"(默认) - 保证没有路径返回一个重复的边"global" - 保证在遍历过程中,每个边缘最多被访问一次,无论从起始顶点到该边缘有多少条路径。。注意: 使用此配置,结果不再是确定性的。如果有从多个路径startVertex超过边缘的那些中的一个被拾取。"none" - 不对边缘应用唯一性检查。注意: 使用此配置,遍历将跟随边沿周期。bfs(bool):是否使用广度优先算法,默认为true

2 案例

//查询洛杉矶直达的机场

with airports FOR airport IN OUTBOUND 'airports/LAX' flights OPTIONS {bfs:true,uniqueVertices:'global'}RETURN airport

//返回10个洛杉矶的航班和他们的目的地

WITH airports FOR airport, flight IN OUTBOUND 'airports/LAX' flightsLIMIT 10RETURN {airport, flight}

//洛杉矶到肯尼迪机场的最短路径

WITH airports FOR v IN ANY SHORTEST_PATH 'airports/LAX' TO 'airports/JFK'  flights return v

五、整合springboot项目

1、引入包

com.arangodbarangodb-spring-data3.3.0

2、配置类

@Configuration
@EnableArangoRepositories(basePackages = "DAO类所在的目录")
public class ArangoConfig implements ArangoConfiguration {@Overridepublic ArangoDB.Builder arango() {ArangoDB.Builder arango = new ArangoDB.Builder().useProtocol(Protocol.VST).host("192.168.137.10", 8529).user("root").password("123456");return arango;}@Overridepublic String database() {return "_system";}
}

3、DAO层

@Repository
public interface PersonRepository extends ArangoRepository {@Query("WITH airports FOR p in airports FILTER p.city == @city RETURN p")List getPersonsByName(@Param("city") String city);
}

4、Bean和Controller

@Document("airports")
@Data
public class Airport {private String _key;private String _id;private String _rev;private String name;private String city;
}
@RestController("airport")
@AllArgsConstructor
public class AirportController {@Autowiredprivate PersonRepository personRepository;@GetMapping("getAriportsByCity")public CommonResult> getAriportsByCity(String city) {List persons = personRepository.getPersonsByName(city);return CommonResult.success(persons);}
}

5、请求结果(只写了几个字段)和web界面查询的结果
在这里插入图片描述

在这里插入图片描述

参考

https://www.arangodb.com/2019/01/run-multiple-versions-arangodb/
https://blog.csdn.net/w690333243/article/details/103497010
http://www.k6k4.com/blog/show/aaauzlfq11509506868802

相关内容

热门资讯

AWSECS:访问外部网络时出... 如果您在AWS ECS中部署了应用程序,并且该应用程序需要访问外部网络,但是无法正常访问,可能是因为...
AWSElasticBeans... 在Dockerfile中手动配置nginx反向代理。例如,在Dockerfile中添加以下代码:FR...
银河麒麟V10SP1高级服务器... 银河麒麟高级服务器操作系统简介: 银河麒麟高级服务器操作系统V10是针对企业级关键业务...
北信源内网安全管理卸载 北信源内网安全管理是一款网络安全管理软件,主要用于保护内网安全。在日常使用过程中,卸载该软件是一种常...
AWR报告解读 WORKLOAD REPOSITORY PDB report (PDB snapshots) AW...
AWS管理控制台菜单和权限 要在AWS管理控制台中创建菜单和权限,您可以使用AWS Identity and Access Ma...
​ToDesk 远程工具安装及... 目录 前言 ToDesk 优势 ToDesk 下载安装 ToDesk 功能展示 文件传输 设备链接 ...
群晖外网访问终极解决方法:IP... 写在前面的话 受够了群晖的quickconnet的小水管了,急需一个新的解决方法&#x...
不能访问光猫的的管理页面 光猫是现代家庭宽带网络的重要组成部分,它可以提供高速稳定的网络连接。但是,有时候我们会遇到不能访问光...
Azure构建流程(Power... 这可能是由于配置错误导致的问题。请检查构建流程任务中的“发布构建制品”步骤,确保正确配置了“Arti...