ArangoDB简单入门
一、安装与启动
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简单入门相关推荐
- BizTalk 2006 简单入门示例程序(附源项目文件下载)
BizTalk 2006 简单入门示例程序(附源项目文件下载) 为初学BizTalk Server 2006的开发人员,提供一个简单入门的示例程序,包括一个Receive Port.Send Port ...
- python如何读取mat文件可视化_python Matplotlib数据可视化(1):简单入门
1 matplot入门指南 matplotlib是Python科学计算中使用最多的一个可视化库,功能丰富,提供了非常多的可视化方案,基本能够满足各种场景下的数据可视化需求.但功能丰富从另一方面来说也意 ...
- ARM NEON 编程简单入门1
原文:http://blog.csdn.net/silentob/article/details/72954618 ARM NEON 编程简单入门1 NEON简介 NEON是适用于ARM Corte ...
- Python 简单入门指北(二)
Python 简单入门指北(二) 2 函数 2.1 函数是一等公民 一等公民指的是 Python 的函数能够动态创建,能赋值给别的变量,能作为参传给函数,也能作为函数的返回值.总而言之,函数和普通变量 ...
- EChart.js 简单入门
EChart.js 简单入门 最近有一个统计的项目要做,在前端的数据需要用图表的形式展示.网上搜索了一下,发现有几种统计图库. MSChart 这个是Visual Studio里的自带控件,使用比 ...
- 【我的区块链之路】- Hyperledger fabric的简单入门(四)链码的编写及调试
[我的区块链之路]- Hyperledger fabric的简单入门(四)链码的编写及调试 之前的文章中我们有讲过了fabric的一些核心的配置文件的选项说明,讲过fabric 的网络启动 ...
- 基于vue-cli、elementUI的Vue超简单入门小例子
基于vue-cli.elementUI的Vue超简单入门小例子 这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. 开始写例子之前,先对环境的部署做点简单 ...
- 【java开发系列】—— spring简单入门示例
回顾 1 JDK安装 2 Struts2简单入门示例 前言 作为入门级的记录帖,没有过多的技术含量,简单的搭建配置框架而已.这次讲到spring,这个应该是SSH中的重量级框架,它主要包含两个内容:控 ...
- JAVA Bean和XML之间的相互转换 - XStream简单入门
JAVA Bean和XML之间的相互转换 - XStream简单入门 背景介绍 XStream的简介 注解简介 应用实例 背景介绍 我们在工作中经常 遇到文件解析为数据或者数据转化为xml文件的情况, ...
最新文章
- python的import与from...import的不同之处
- Softmax的理解与应用
- LruCache缓存机制
- poj 3984
- 利用.swp文件恢复源文件
- keepalived脑裂问题查找
- 计算机参评高校168所,168所大学排行榜单!计算机科学与技术专业哪些高校专业实力最强!...
- 《Phper》MySQL 的一些基本操作
- 哈利波特:哈迷们集合啦
- vue微信扫码登录过程
- javase实现银行转账
- 我的世界 java错误_我的世界error错误信息 应用程序错误解决方法
- fileupload控件的属性_FileUpload上传控件用法详解
- 达索系统SPDM面向管理者的企业级仿真流程管理平台
- 关于中宣部实名认证过程中的一些问题和解答
- 网站收录查询方法,网站收录减少的原因
- android软件版本升级时,安装新版本后,没有出现安装成功界面或直接回到桌面
- css网格_CSS网格的逐步增强
- Normal Equation推导
- 【备考01组29号】2017年全国硕士研究生招生考试英语(二)