一、安装与启动

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、引入包

<dependency><groupId>com.arangodb</groupId><artifactId>arangodb-spring-data</artifactId><version>3.3.0</version>
</dependency>

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<Airport,Long> {@Query("WITH airports FOR p in airports FILTER p.city == @city RETURN p")List<Airport> 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<List<Airport>> getAriportsByCity(String city) {List<Airport> 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

ArangoDB简单入门相关推荐

  1. BizTalk 2006 简单入门示例程序(附源项目文件下载)

    BizTalk 2006 简单入门示例程序(附源项目文件下载) 为初学BizTalk Server 2006的开发人员,提供一个简单入门的示例程序,包括一个Receive Port.Send Port ...

  2. python如何读取mat文件可视化_python Matplotlib数据可视化(1):简单入门

    1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意 ...

  3. ARM NEON 编程简单入门1

    原文:http://blog.csdn.net/silentob/article/details/72954618  ARM NEON 编程简单入门1 NEON简介 NEON是适用于ARM Corte ...

  4. Python 简单入门指北(二)

    Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...

  5. EChart.js 简单入门

    EChart.js 简单入门 最近有一个统计的项目要做,在前端的数据需要用图表的形式展示.网上搜索了一下,发现有几种统计图库. MSChart   这个是Visual Studio里的自带控件,使用比 ...

  6. 【我的区块链之路】- Hyperledger fabric的简单入门(四)链码的编写及调试

    [我的区块链之路]- Hyperledger fabric的简单入门(四)链码的编写及调试       之前的文章中我们有讲过了fabric的一些核心的配置文件的选项说明,讲过fabric 的网络启动 ...

  7. 基于vue-cli、elementUI的Vue超简单入门小例子

    基于vue-cli.elementUI的Vue超简单入门小例子 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. 开始写例子之前,先对环境的部署做点简单 ...

  8. 【java开发系列】—— spring简单入门示例

    回顾 1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控 ...

  9. JAVA Bean和XML之间的相互转换 - XStream简单入门

    JAVA Bean和XML之间的相互转换 - XStream简单入门 背景介绍 XStream的简介 注解简介 应用实例 背景介绍 我们在工作中经常 遇到文件解析为数据或者数据转化为xml文件的情况, ...

最新文章

  1. python的import与from...import的不同之处
  2. Softmax的理解与应用
  3. LruCache缓存机制
  4. poj 3984
  5. 利用.swp文件恢复源文件
  6. keepalived脑裂问题查找
  7. 计算机参评高校168所,168所大学排行榜单!计算机科学与技术专业哪些高校专业实力最强!...
  8. 《Phper》MySQL 的一些基本操作
  9. 哈利波特:哈迷们集合啦
  10. vue微信扫码登录过程
  11. javase实现银行转账
  12. 我的世界 java错误_我的世界error错误信息 应用程序错误解决方法
  13. fileupload控件的属性_FileUpload上传控件用法详解
  14. 达索系统SPDM面向管理者的企业级仿真流程管理平台
  15. 关于中宣部实名认证过程中的一些问题和解答
  16. 网站收录查询方法,网站收录减少的原因
  17. android软件版本升级时,安装新版本后,没有出现安装成功界面或直接回到桌面
  18. css网格_CSS网格的逐步增强
  19. Normal Equation推导
  20. 【备考01组29号】2017年全国硕士研究生招生考试英语(二)

热门文章

  1. 独家分享108个优质Java计算机毕业设计项目,只为你的毕业设计
  2. 手机黑科技 中国再一次走在世界的前面
  3. Ubuntu下libpng库编译使用
  4. 融云android聊天界面,Android 融云IM集成以及使用详解(一)
  5. 【Docker】win11安装docker不能启动,wsl 2 installation is incomplete报错
  6. 打表暴力验证题目猜想的部分结论
  7. ubuntu安装VIM教程与命令详解
  8. 【IOS账号分享】《魂之刃:巨龙城堡》
  9. Selenium隐藏浏览器和元素截屏实践
  10. 一种用于水位量测的浮子水位计