linux导入导出数据(不需要登录arango 直接运行以下命令即可):
导入数据
arangorestore --input-directory ./collectObj --server.database database1 --server.username username1 --server.password password1
导出数据
arangodump --collection collectObj --output-directory ./collectObj/ --server.database database1 --server.username root --server.password password1
说明:
collectObj 为collection名称
./collectObj/ 为导出文件路径
database1为collection所在的数据库
windows下导入导出数据(进入bin目录):
导入数据:
.\arangorestore.exe --input-directory G:/ --server.database arangodb --server.username arangodb
--server.password arangodb
导出数据:
.\arangodump.exe --collection court --output-directory G:/ --server.database arangodb
--server.username arangodb --server.password arangodb
查询两个顶点间最短路径
AQL语句:
FOR v,e IN any SHORTEST_PATH
"account/6217003810017623623" TO
"account/6217003810017623629"
GRAPH 'accountGraph'
return {vertexLst:v,edgeLst:e}
语句解读:
v vertex 顶点
e edge 边
any 不区分方向
account/6217003810017623623 起始顶点
account/6217003810017623629目标定点
'accountGraph'图名称
vertexLst 返回顶点的集合
edgeLst 返回边的集合
图遍历
实例一:
AQL语句:
FOR startvertice IN ["account/6217003876521623568",
"device/223DAF21-2C1B-3216-C6CA-0A1B131CF03C"]
FOR v, e, p IN 1..2
ANY startvertice
GRAPH "graphName"
filter p.vertices[* return PARSE_IDENTIFIER(CURRENT).collection] ALL in
["account", "device"]
return p
语句解读:
外层For为起始顶点,此处指定两个起始顶点
内层for拿到一个起始顶点,以起始顶点开始查询关联顶点
In 1..2 表示最少一层最多两层 如:A——>B——>C 即为两层
graphName为graph名称
v为顶点,e为边,p为路径
p.vertices[* return PARSE_IDENTIFIER(CURRENT).collection] 返回顶点所在的collection
return p 返回整个路径
整句解读:
分别以两个顶点开始,不区分方向查询各自最深为2层的节点,且节点必须是account和device这两个维度。
实例二:
AQL语句:
FOR v, e IN 1..1ANY "company/310381000032632"
GRAPH "graphName"
let me = DOCUMENT("company/310381000032632")
return {vertex:v,edges:e,me:me}
语句解读:
in 1..1 只查询与顶点相关的第一层级的顶点
graphName graph名称
let me 其中me为一个临时变量,用于接收节点自身
return {vertex:v,edges:e,me:me} 此处指定返回结果集,特意返回me 因为查询结果中的顶点默认是没有返回顶点自身的,这样前端构建graph的时候无法创建关联关系,都是散乱的顶点。