ArangoDb学习笔记————AQL tutorial(一)

最近做一个项目要用到ArangoDb,一搜发现连中文文档都没有,所以一边看官网上英文文档,一边做下总结。

首先对几个关键词要有个大概的了解:

AQL:arangodb query language,arangodb的查询语言,可与类似于SQL。

Collections:有Docunment和Edge两种类型,这个可以类似于Oracle上的表,AQL不能操作Collections

Document:可以类似于Oracle上表中的一条记录,

Edge:可以类似于Oracle上表中的一条记录,跟Document不同的是,这个存储的是Document之间的关系。

----------------------------------------------分割线------------------------------------------------

对于一个数据库来说,主要的功能也就是对数据的增删改查,对于arangodb来说也是一样。

以AQL tutorial章节里面新建的Characters为例,来总结一下增删改查的用法

新增:

INSERT {
    "name": "Ned",
    "surname": "Stark",
    "alive": true,
    "age": 41,
    "traits": ["A","H","C","N","P"]
} INTO Characters

跟Oracle一样,insert是用来插记录的,大括号里面这个json对象(key-value键值对)就是document,也就是要插入的数据,

跟oracle不同的地方,oracle里每一行的key(也就是列头)都是相同的,而arangodb很明显可以不同。

另外新增完,会多出三个属性(_id, _rev, _key),其中_key可以在新增的时候指定,不指定的话会默认生成一个,主要用来保证document的唯一性(例如:347),_id是Collections的名字和_key的组合(例如:Characters/347),_rev理解为系统管理的版本(revision Id)。

修改:

UPDATE "2861650" WITH { alive: false } IN Characters


REPLACE "2861650" WITH {
    name: "Ned",
    surname: "Stark",
    alive: false,
    age: 41,
    traits: ["A","H","C","N","P"]
} IN Characters

update关键词作用是修改,原document里有的属性修改,没有的就新增

replace关键词作用是替换,用新的documnet替换原来的document

删除:

REMOVE "2861650" IN Characters

删除就没有什么好说的,"2861650"是documnet的_key值。

查询:

RETURN DOCUMENT("Characters", "2861650")

RETURN DOCUMENT("Characters", ["2861650", "2861653"])

RETURN DOCUMENT(["Characters/2861650", "Characters/2861653"])

FOR c IN Characters
    RETURN c

Document函数可以用来查询指定collectionName和_key的记录

也可以用for循环来返回collection里面所有的记录

你可能感兴趣的:(数据库,arangodb)