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

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...